summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/nfs/nfs4_srv.c
diff options
context:
space:
mode:
authorrsb <none@none>2007-03-26 17:41:06 -0700
committerrsb <none@none>2007-03-26 17:41:06 -0700
commitaa59c4cb15a6ac5d4e585dadf7a055b580abf579 (patch)
tree67105846ea7ea656699224cf37f3cf859c00cd6a /usr/src/uts/common/fs/nfs/nfs4_srv.c
parentaf2c4821c0a23e873f2a63bca4145080aa2183e3 (diff)
downloadillumos-joyent-aa59c4cb15a6ac5d4e585dadf7a055b580abf579.tar.gz
PSARC/2007/124 Strong Type-Checking for VFS Operation Registration Mechanism
6505923 Need better type checking for vnodeops 6531594 lxpr_readlink() is missing the "cred_t *cr" arg 6532559 vfs_strayops does not use the vnode/vfs operation registration mechanism
Diffstat (limited to 'usr/src/uts/common/fs/nfs/nfs4_srv.c')
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_srv.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs4_srv.c b/usr/src/uts/common/fs/nfs/nfs4_srv.c
index cd741c18c0..fd0ebe6f8e 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_srv.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_srv.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -36,6 +36,7 @@
#include <sys/cred.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/uio.h>
#include <sys/errno.h>
@@ -475,25 +476,25 @@ extern size_t strlcpy(char *dst, const char *src, size_t dstsize);
#define nextdp(dp) ((struct dirent64 *)((char *)(dp) + (dp)->d_reclen))
static const fs_operation_def_t nfs4_rd_deleg_tmpl[] = {
- VOPNAME_OPEN, deleg_rdopen,
- VOPNAME_WRITE, deleg_write,
- VOPNAME_SETATTR, deleg_setattr,
- VOPNAME_RWLOCK, deleg_rd_rwlock,
- VOPNAME_SPACE, deleg_space,
- VOPNAME_SETSECATTR, deleg_setsecattr,
- VOPNAME_VNEVENT, deleg_vnevent,
- NULL, NULL
+ VOPNAME_OPEN, { .femop_open = deleg_rdopen },
+ VOPNAME_WRITE, { .femop_write = deleg_write },
+ VOPNAME_SETATTR, { .femop_setattr = deleg_setattr },
+ VOPNAME_RWLOCK, { .femop_rwlock = deleg_rd_rwlock },
+ VOPNAME_SPACE, { .femop_space = deleg_space },
+ VOPNAME_SETSECATTR, { .femop_setsecattr = deleg_setsecattr },
+ VOPNAME_VNEVENT, { .femop_vnevent = deleg_vnevent },
+ NULL, NULL
};
static const fs_operation_def_t nfs4_wr_deleg_tmpl[] = {
- VOPNAME_OPEN, deleg_wropen,
- VOPNAME_READ, deleg_read,
- VOPNAME_WRITE, deleg_write,
- VOPNAME_SETATTR, deleg_setattr,
- VOPNAME_RWLOCK, deleg_wr_rwlock,
- VOPNAME_SPACE, deleg_space,
- VOPNAME_SETSECATTR, deleg_setsecattr,
- VOPNAME_VNEVENT, deleg_vnevent,
- NULL, NULL
+ VOPNAME_OPEN, { .femop_open = deleg_wropen },
+ VOPNAME_READ, { .femop_read = deleg_read },
+ VOPNAME_WRITE, { .femop_write = deleg_write },
+ VOPNAME_SETATTR, { .femop_setattr = deleg_setattr },
+ VOPNAME_RWLOCK, { .femop_rwlock = deleg_wr_rwlock },
+ VOPNAME_SPACE, { .femop_space = deleg_space },
+ VOPNAME_SETSECATTR, { .femop_setsecattr = deleg_setsecattr },
+ VOPNAME_VNEVENT, { .femop_vnevent = deleg_vnevent },
+ NULL, NULL
};
int