reindent-20030715
[openafs.git] / src / afs / UKERNEL / osi_vnodeops.c
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #include <afsconfig.h>
11 #include "afs/param.h"
12
13 RCSID
14     ("$Header$");
15
16 #include "afs/sysincludes.h"    /* Standard vendor system headers */
17 #include "afsincludes.h"        /* Afs-based standard headers */
18 #include "afs/afs_stats.h"      /* statistics */
19
20 extern int afs_noop();
21 extern int afs_badop();
22
23 extern int afs_open();
24 extern int afs_close();
25 extern int afs_getattr();
26 extern int afs_setattr();
27 extern int afs_access();
28 extern int afs_lookup();
29 extern int afs_create();
30 extern int afs_remove();
31 extern int afs_link();
32 extern int afs_rename();
33 extern int afs_mkdir();
34 extern int afs_rmdir();
35 extern int afs_readdir();
36 extern int afs_symlink();
37 extern int afs_readlink();
38 extern int afs_fsync();
39 extern int afs_lockctl();
40 extern int afs_fid();
41
42 int
43 afs_vrdwr(struct usr_vnode *avc, struct usr_uio *uio, int rw, int io,
44           struct usr_ucred *cred)
45 {
46     int rc;
47
48     if (rw == UIO_WRITE) {
49         rc = afs_write(avc, uio, io, cred, 0);
50     } else {
51         rc = afs_read(avc, uio, cred, 0, 0, 0);
52     }
53
54     return rc;
55 }
56
57 int
58 afs_inactive(struct vcache *avc, struct AFS_UCRED *acred)
59 {
60     struct vnode *vp = AFSTOV(avc);
61     if (afs_shuttingdown)
62         return;
63
64     usr_assert(avc->vrefCount == 0);
65     afs_InactiveVCache(avc, acred);
66 }
67
68 struct usr_vnodeops Afs_vnodeops = {
69     afs_open,
70     afs_close,
71     afs_vrdwr,
72     afs_badop,                  /* ioctl */
73     afs_noop,                   /* select */
74     afs_getattr,
75     afs_setattr,
76     afs_access,
77     afs_lookup,
78     afs_create,
79     afs_remove,
80     afs_link,
81     afs_rename,
82     afs_mkdir,
83     afs_rmdir,
84     afs_readdir,
85     afs_symlink,
86     afs_readlink,
87     afs_fsync,
88     afs_inactive,
89     afs_badop,                  /* bmap */
90     afs_badop,                  /* strategy */
91     afs_badop,                  /* bread */
92     afs_badop,                  /* brelse */
93     afs_lockctl,
94     afs_fid
95 };
96
97 struct usr_vnodeops *afs_ops = &Afs_vnodeops;