diff options
author | rsb <none@none> | 2007-03-26 17:41:06 -0700 |
---|---|---|
committer | rsb <none@none> | 2007-03-26 17:41:06 -0700 |
commit | aa59c4cb15a6ac5d4e585dadf7a055b580abf579 (patch) | |
tree | 67105846ea7ea656699224cf37f3cf859c00cd6a /usr/src/uts/common/fs/lofs/lofs_vnops.c | |
parent | af2c4821c0a23e873f2a63bca4145080aa2183e3 (diff) | |
download | illumos-gate-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/lofs/lofs_vnops.c')
-rw-r--r-- | usr/src/uts/common/fs/lofs/lofs_vnops.c | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/usr/src/uts/common/fs/lofs/lofs_vnops.c b/usr/src/uts/common/fs/lofs/lofs_vnops.c index fe68686fbe..85138187c1 100644 --- a/usr/src/uts/common/fs/lofs/lofs_vnops.c +++ b/usr/src/uts/common/fs/lofs/lofs_vnops.c @@ -30,6 +30,7 @@ #include <sys/errno.h> #include <sys/vnode.h> #include <sys/vfs.h> +#include <sys/vfs_opreg.h> #include <sys/uio.h> #include <sys/cred.h> #include <sys/pathname.h> @@ -1116,48 +1117,48 @@ lo_shrlock(vnode_t *vp, int cmd, struct shrlock *shr, int flag, cred_t *cr) struct vnodeops *lo_vnodeops; const fs_operation_def_t lo_vnodeops_template[] = { - VOPNAME_OPEN, lo_open, - VOPNAME_CLOSE, lo_close, - VOPNAME_READ, lo_read, - VOPNAME_WRITE, lo_write, - VOPNAME_IOCTL, lo_ioctl, - VOPNAME_SETFL, lo_setfl, - VOPNAME_GETATTR, lo_getattr, - VOPNAME_SETATTR, lo_setattr, - VOPNAME_ACCESS, lo_access, - VOPNAME_LOOKUP, lo_lookup, - VOPNAME_CREATE, lo_create, - VOPNAME_REMOVE, lo_remove, - VOPNAME_LINK, lo_link, - VOPNAME_RENAME, lo_rename, - VOPNAME_MKDIR, lo_mkdir, - VOPNAME_RMDIR, lo_rmdir, - VOPNAME_READDIR, lo_readdir, - VOPNAME_SYMLINK, lo_symlink, - VOPNAME_READLINK, lo_readlink, - VOPNAME_FSYNC, lo_fsync, - VOPNAME_INACTIVE, (fs_generic_func_p) lo_inactive, - VOPNAME_FID, lo_fid, - VOPNAME_RWLOCK, lo_rwlock, - VOPNAME_RWUNLOCK, (fs_generic_func_p) lo_rwunlock, - VOPNAME_SEEK, lo_seek, - VOPNAME_CMP, lo_cmp, - VOPNAME_FRLOCK, lo_frlock, - VOPNAME_SPACE, lo_space, - VOPNAME_REALVP, lo_realvp, - VOPNAME_GETPAGE, lo_getpage, - VOPNAME_PUTPAGE, lo_putpage, - VOPNAME_MAP, (fs_generic_func_p) lo_map, - VOPNAME_ADDMAP, (fs_generic_func_p) lo_addmap, - VOPNAME_DELMAP, lo_delmap, - VOPNAME_POLL, (fs_generic_func_p) lo_poll, - VOPNAME_DUMP, lo_dump, - VOPNAME_DUMPCTL, fs_error, /* XXX - why? */ - VOPNAME_PATHCONF, lo_pathconf, - VOPNAME_PAGEIO, lo_pageio, - VOPNAME_DISPOSE, (fs_generic_func_p) lo_dispose, - VOPNAME_SETSECATTR, lo_setsecattr, - VOPNAME_GETSECATTR, lo_getsecattr, - VOPNAME_SHRLOCK, lo_shrlock, - NULL, NULL + VOPNAME_OPEN, { .vop_open = lo_open }, + VOPNAME_CLOSE, { .vop_close = lo_close }, + VOPNAME_READ, { .vop_read = lo_read }, + VOPNAME_WRITE, { .vop_write = lo_write }, + VOPNAME_IOCTL, { .vop_ioctl = lo_ioctl }, + VOPNAME_SETFL, { .vop_setfl = lo_setfl }, + VOPNAME_GETATTR, { .vop_getattr = lo_getattr }, + VOPNAME_SETATTR, { .vop_setattr = lo_setattr }, + VOPNAME_ACCESS, { .vop_access = lo_access }, + VOPNAME_LOOKUP, { .vop_lookup = lo_lookup }, + VOPNAME_CREATE, { .vop_create = lo_create }, + VOPNAME_REMOVE, { .vop_remove = lo_remove }, + VOPNAME_LINK, { .vop_link = lo_link }, + VOPNAME_RENAME, { .vop_rename = lo_rename }, + VOPNAME_MKDIR, { .vop_mkdir = lo_mkdir }, + VOPNAME_RMDIR, { .vop_rmdir = lo_rmdir }, + VOPNAME_READDIR, { .vop_readdir = lo_readdir }, + VOPNAME_SYMLINK, { .vop_symlink = lo_symlink }, + VOPNAME_READLINK, { .vop_readlink = lo_readlink }, + VOPNAME_FSYNC, { .vop_fsync = lo_fsync }, + VOPNAME_INACTIVE, { .vop_inactive = lo_inactive }, + VOPNAME_FID, { .vop_fid = lo_fid }, + VOPNAME_RWLOCK, { .vop_rwlock = lo_rwlock }, + VOPNAME_RWUNLOCK, { .vop_rwunlock = lo_rwunlock }, + VOPNAME_SEEK, { .vop_seek = lo_seek }, + VOPNAME_CMP, { .vop_cmp = lo_cmp }, + VOPNAME_FRLOCK, { .vop_frlock = lo_frlock }, + VOPNAME_SPACE, { .vop_space = lo_space }, + VOPNAME_REALVP, { .vop_realvp = lo_realvp }, + VOPNAME_GETPAGE, { .vop_getpage = lo_getpage }, + VOPNAME_PUTPAGE, { .vop_putpage = lo_putpage }, + VOPNAME_MAP, { .vop_map = lo_map }, + VOPNAME_ADDMAP, { .vop_addmap = lo_addmap }, + VOPNAME_DELMAP, { .vop_delmap = lo_delmap }, + VOPNAME_POLL, { .vop_poll = lo_poll }, + VOPNAME_DUMP, { .vop_dump = lo_dump }, + VOPNAME_DUMPCTL, { .error = fs_error }, /* XXX - why? */ + VOPNAME_PATHCONF, { .vop_pathconf = lo_pathconf }, + VOPNAME_PAGEIO, { .vop_pageio = lo_pageio }, + VOPNAME_DISPOSE, { .vop_dispose = lo_dispose }, + VOPNAME_SETSECATTR, { .vop_setsecattr = lo_setsecattr }, + VOPNAME_GETSECATTR, { .vop_getsecattr = lo_getsecattr }, + VOPNAME_SHRLOCK, { .vop_shrlock = lo_shrlock }, + NULL, NULL }; |