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/zfs/zfs_ctldir.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/zfs/zfs_ctldir.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_ctldir.c | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_ctldir.c b/usr/src/uts/common/fs/zfs/zfs_ctldir.c index cb0807aa56..aaae4f7849 100644 --- a/usr/src/uts/common/fs/zfs/zfs_ctldir.c +++ b/usr/src/uts/common/fs/zfs/zfs_ctldir.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. */ @@ -59,6 +59,7 @@ #include <sys/zfs_ctldir.h> #include <sys/zfs_ioctl.h> #include <sys/zfs_vfsops.h> +#include <sys/vfs_opreg.h> #include <sys/gfs.h> #include <sys/stat.h> #include <sys/dmu.h> @@ -384,16 +385,16 @@ zfsctl_root_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp, } static const fs_operation_def_t zfsctl_tops_root[] = { - { VOPNAME_OPEN, zfsctl_common_open }, - { VOPNAME_CLOSE, zfsctl_common_close }, - { VOPNAME_IOCTL, fs_inval }, - { VOPNAME_GETATTR, zfsctl_root_getattr }, - { VOPNAME_ACCESS, zfsctl_common_access }, - { VOPNAME_READDIR, gfs_vop_readdir }, - { VOPNAME_LOOKUP, zfsctl_root_lookup }, - { VOPNAME_SEEK, fs_seek }, - { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive }, - { VOPNAME_FID, zfsctl_common_fid }, + { VOPNAME_OPEN, { .vop_open = zfsctl_common_open } }, + { VOPNAME_CLOSE, { .vop_close = zfsctl_common_close } }, + { VOPNAME_IOCTL, { .error = fs_inval } }, + { VOPNAME_GETATTR, { .vop_getattr = zfsctl_root_getattr } }, + { VOPNAME_ACCESS, { .vop_access = zfsctl_common_access } }, + { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } }, + { VOPNAME_LOOKUP, { .vop_lookup = zfsctl_root_lookup } }, + { VOPNAME_SEEK, { .vop_seek = fs_seek } }, + { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } }, + { VOPNAME_FID, { .vop_fid = zfsctl_common_fid } }, { NULL } }; @@ -788,18 +789,18 @@ zfsctl_snapdir_inactive(vnode_t *vp, cred_t *cr) } static const fs_operation_def_t zfsctl_tops_snapdir[] = { - { VOPNAME_OPEN, zfsctl_common_open }, - { VOPNAME_CLOSE, zfsctl_common_close }, - { VOPNAME_IOCTL, fs_inval }, - { VOPNAME_GETATTR, zfsctl_snapdir_getattr }, - { VOPNAME_ACCESS, zfsctl_common_access }, - { VOPNAME_RENAME, zfsctl_snapdir_rename }, - { VOPNAME_RMDIR, zfsctl_snapdir_remove }, - { VOPNAME_READDIR, gfs_vop_readdir }, - { VOPNAME_LOOKUP, zfsctl_snapdir_lookup }, - { VOPNAME_SEEK, fs_seek }, - { VOPNAME_INACTIVE, (fs_generic_func_p) zfsctl_snapdir_inactive }, - { VOPNAME_FID, zfsctl_common_fid }, + { VOPNAME_OPEN, { .vop_open = zfsctl_common_open } }, + { VOPNAME_CLOSE, { .vop_close = zfsctl_common_close } }, + { VOPNAME_IOCTL, { .error = fs_inval } }, + { VOPNAME_GETATTR, { .vop_getattr = zfsctl_snapdir_getattr } }, + { VOPNAME_ACCESS, { .vop_access = zfsctl_common_access } }, + { VOPNAME_RENAME, { .vop_rename = zfsctl_snapdir_rename } }, + { VOPNAME_RMDIR, { .vop_rmdir = zfsctl_snapdir_remove } }, + { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } }, + { VOPNAME_LOOKUP, { .vop_lookup = zfsctl_snapdir_lookup } }, + { VOPNAME_SEEK, { .vop_seek = fs_seek } }, + { VOPNAME_INACTIVE, { .vop_inactive = zfsctl_snapdir_inactive } }, + { VOPNAME_FID, { .vop_fid = zfsctl_common_fid } }, { NULL } }; @@ -868,7 +869,7 @@ zfsctl_snapshot_inactive(vnode_t *vp, cred_t *cr) * be covered. */ static const fs_operation_def_t zfsctl_tops_snapshot[] = { - VOPNAME_INACTIVE, (fs_generic_func_p) zfsctl_snapshot_inactive, + VOPNAME_INACTIVE, { .vop_inactive = zfsctl_snapshot_inactive }, NULL, NULL }; |