diff options
Diffstat (limited to 'usr/src/uts/common/fs/zfs')
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_ctldir.c | 49 | ||||
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_vfsops.c | 23 | ||||
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_vnops.c | 177 | ||||
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_znode.c | 1 |
4 files changed, 127 insertions, 123 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 }; diff --git a/usr/src/uts/common/fs/zfs/zfs_vfsops.c b/usr/src/uts/common/fs/zfs/zfs_vfsops.c index bdfcca28f0..e5bd45c720 100644 --- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c +++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c @@ -34,6 +34,7 @@ #include <sys/acl.h> #include <sys/vnode.h> #include <sys/vfs.h> +#include <sys/vfs_opreg.h> #include <sys/mntent.h> #include <sys/mount.h> #include <sys/cmn_err.h> @@ -75,20 +76,20 @@ static void zfs_freevfs(vfs_t *vfsp); static void zfs_objset_close(zfsvfs_t *zfsvfs); static const fs_operation_def_t zfs_vfsops_template[] = { - VFSNAME_MOUNT, zfs_mount, - VFSNAME_MOUNTROOT, zfs_mountroot, - VFSNAME_UNMOUNT, zfs_umount, - VFSNAME_ROOT, zfs_root, - VFSNAME_STATVFS, zfs_statvfs, - VFSNAME_SYNC, (fs_generic_func_p) zfs_sync, - VFSNAME_VGET, zfs_vget, - VFSNAME_FREEVFS, (fs_generic_func_p) zfs_freevfs, - NULL, NULL + VFSNAME_MOUNT, { .vfs_mount = zfs_mount }, + VFSNAME_MOUNTROOT, { .vfs_mountroot = zfs_mountroot }, + VFSNAME_UNMOUNT, { .vfs_unmount = zfs_umount }, + VFSNAME_ROOT, { .vfs_root = zfs_root }, + VFSNAME_STATVFS, { .vfs_statvfs = zfs_statvfs }, + VFSNAME_SYNC, { .vfs_sync = zfs_sync }, + VFSNAME_VGET, { .vfs_vget = zfs_vget }, + VFSNAME_FREEVFS, { .vfs_freevfs = zfs_freevfs }, + NULL, NULL }; static const fs_operation_def_t zfs_vfsops_eio_template[] = { - VFSNAME_FREEVFS, (fs_generic_func_p) zfs_freevfs, - NULL, NULL + VFSNAME_FREEVFS, { .vfs_freevfs = zfs_freevfs }, + NULL, NULL }; /* diff --git a/usr/src/uts/common/fs/zfs/zfs_vnops.c b/usr/src/uts/common/fs/zfs/zfs_vnops.c index 4299bb60f2..fd1aae2e38 100644 --- a/usr/src/uts/common/fs/zfs/zfs_vnops.c +++ b/usr/src/uts/common/fs/zfs/zfs_vnops.c @@ -32,6 +32,7 @@ #include <sys/sysmacros.h> #include <sys/resource.h> #include <sys/vfs.h> +#include <sys/vfs_opreg.h> #include <sys/vnode.h> #include <sys/file.h> #include <sys/stat.h> @@ -3662,31 +3663,31 @@ zfs_isdir() */ vnodeops_t *zfs_dvnodeops; const fs_operation_def_t zfs_dvnodeops_template[] = { - VOPNAME_OPEN, zfs_open, - VOPNAME_CLOSE, zfs_close, - VOPNAME_READ, zfs_isdir, - VOPNAME_WRITE, zfs_isdir, - VOPNAME_IOCTL, zfs_ioctl, - VOPNAME_GETATTR, zfs_getattr, - VOPNAME_SETATTR, zfs_setattr, - VOPNAME_ACCESS, zfs_access, - VOPNAME_LOOKUP, zfs_lookup, - VOPNAME_CREATE, zfs_create, - VOPNAME_REMOVE, zfs_remove, - VOPNAME_LINK, zfs_link, - VOPNAME_RENAME, zfs_rename, - VOPNAME_MKDIR, zfs_mkdir, - VOPNAME_RMDIR, zfs_rmdir, - VOPNAME_READDIR, zfs_readdir, - VOPNAME_SYMLINK, zfs_symlink, - VOPNAME_FSYNC, zfs_fsync, - VOPNAME_INACTIVE, (fs_generic_func_p) zfs_inactive, - VOPNAME_FID, zfs_fid, - VOPNAME_SEEK, zfs_seek, - VOPNAME_PATHCONF, zfs_pathconf, - VOPNAME_GETSECATTR, zfs_getsecattr, - VOPNAME_SETSECATTR, zfs_setsecattr, - NULL, NULL + VOPNAME_OPEN, { .vop_open = zfs_open }, + VOPNAME_CLOSE, { .vop_close = zfs_close }, + VOPNAME_READ, { .error = zfs_isdir }, + VOPNAME_WRITE, { .error = zfs_isdir }, + VOPNAME_IOCTL, { .vop_ioctl = zfs_ioctl }, + VOPNAME_GETATTR, { .vop_getattr = zfs_getattr }, + VOPNAME_SETATTR, { .vop_setattr = zfs_setattr }, + VOPNAME_ACCESS, { .vop_access = zfs_access }, + VOPNAME_LOOKUP, { .vop_lookup = zfs_lookup }, + VOPNAME_CREATE, { .vop_create = zfs_create }, + VOPNAME_REMOVE, { .vop_remove = zfs_remove }, + VOPNAME_LINK, { .vop_link = zfs_link }, + VOPNAME_RENAME, { .vop_rename = zfs_rename }, + VOPNAME_MKDIR, { .vop_mkdir = zfs_mkdir }, + VOPNAME_RMDIR, { .vop_rmdir = zfs_rmdir }, + VOPNAME_READDIR, { .vop_readdir = zfs_readdir }, + VOPNAME_SYMLINK, { .vop_symlink = zfs_symlink }, + VOPNAME_FSYNC, { .vop_fsync = zfs_fsync }, + VOPNAME_INACTIVE, { .vop_inactive = zfs_inactive }, + VOPNAME_FID, { .vop_fid = zfs_fid }, + VOPNAME_SEEK, { .vop_seek = zfs_seek }, + VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf }, + VOPNAME_GETSECATTR, { .vop_getsecattr = zfs_getsecattr }, + VOPNAME_SETSECATTR, { .vop_setsecattr = zfs_setsecattr }, + NULL, NULL }; /* @@ -3694,32 +3695,32 @@ const fs_operation_def_t zfs_dvnodeops_template[] = { */ vnodeops_t *zfs_fvnodeops; const fs_operation_def_t zfs_fvnodeops_template[] = { - VOPNAME_OPEN, zfs_open, - VOPNAME_CLOSE, zfs_close, - VOPNAME_READ, zfs_read, - VOPNAME_WRITE, zfs_write, - VOPNAME_IOCTL, zfs_ioctl, - VOPNAME_GETATTR, zfs_getattr, - VOPNAME_SETATTR, zfs_setattr, - VOPNAME_ACCESS, zfs_access, - VOPNAME_LOOKUP, zfs_lookup, - VOPNAME_RENAME, zfs_rename, - VOPNAME_FSYNC, zfs_fsync, - VOPNAME_INACTIVE, (fs_generic_func_p)zfs_inactive, - VOPNAME_FID, zfs_fid, - VOPNAME_SEEK, zfs_seek, - VOPNAME_FRLOCK, zfs_frlock, - VOPNAME_SPACE, zfs_space, - VOPNAME_GETPAGE, zfs_getpage, - VOPNAME_PUTPAGE, zfs_putpage, - VOPNAME_MAP, (fs_generic_func_p) zfs_map, - VOPNAME_ADDMAP, (fs_generic_func_p) zfs_addmap, - VOPNAME_DELMAP, zfs_delmap, - VOPNAME_PATHCONF, zfs_pathconf, - VOPNAME_GETSECATTR, zfs_getsecattr, - VOPNAME_SETSECATTR, zfs_setsecattr, - VOPNAME_VNEVENT, fs_vnevent_support, - NULL, NULL + VOPNAME_OPEN, { .vop_open = zfs_open }, + VOPNAME_CLOSE, { .vop_close = zfs_close }, + VOPNAME_READ, { .vop_read = zfs_read }, + VOPNAME_WRITE, { .vop_write = zfs_write }, + VOPNAME_IOCTL, { .vop_ioctl = zfs_ioctl }, + VOPNAME_GETATTR, { .vop_getattr = zfs_getattr }, + VOPNAME_SETATTR, { .vop_setattr = zfs_setattr }, + VOPNAME_ACCESS, { .vop_access = zfs_access }, + VOPNAME_LOOKUP, { .vop_lookup = zfs_lookup }, + VOPNAME_RENAME, { .vop_rename = zfs_rename }, + VOPNAME_FSYNC, { .vop_fsync = zfs_fsync }, + VOPNAME_INACTIVE, { .vop_inactive = zfs_inactive }, + VOPNAME_FID, { .vop_fid = zfs_fid }, + VOPNAME_SEEK, { .vop_seek = zfs_seek }, + VOPNAME_FRLOCK, { .vop_frlock = zfs_frlock }, + VOPNAME_SPACE, { .vop_space = zfs_space }, + VOPNAME_GETPAGE, { .vop_getpage = zfs_getpage }, + VOPNAME_PUTPAGE, { .vop_putpage = zfs_putpage }, + VOPNAME_MAP, { .vop_map = zfs_map }, + VOPNAME_ADDMAP, { .vop_addmap = zfs_addmap }, + VOPNAME_DELMAP, { .vop_delmap = zfs_delmap }, + VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf }, + VOPNAME_GETSECATTR, { .vop_getsecattr = zfs_getsecattr }, + VOPNAME_SETSECATTR, { .vop_setsecattr = zfs_setsecattr }, + VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support }, + NULL, NULL }; /* @@ -3727,16 +3728,16 @@ const fs_operation_def_t zfs_fvnodeops_template[] = { */ vnodeops_t *zfs_symvnodeops; const fs_operation_def_t zfs_symvnodeops_template[] = { - VOPNAME_GETATTR, zfs_getattr, - VOPNAME_SETATTR, zfs_setattr, - VOPNAME_ACCESS, zfs_access, - VOPNAME_RENAME, zfs_rename, - VOPNAME_READLINK, zfs_readlink, - VOPNAME_INACTIVE, (fs_generic_func_p) zfs_inactive, - VOPNAME_FID, zfs_fid, - VOPNAME_PATHCONF, zfs_pathconf, - VOPNAME_VNEVENT, fs_vnevent_support, - NULL, NULL + VOPNAME_GETATTR, { .vop_getattr = zfs_getattr }, + VOPNAME_SETATTR, { .vop_setattr = zfs_setattr }, + VOPNAME_ACCESS, { .vop_access = zfs_access }, + VOPNAME_RENAME, { .vop_rename = zfs_rename }, + VOPNAME_READLINK, { .vop_readlink = zfs_readlink }, + VOPNAME_INACTIVE, { .vop_inactive = zfs_inactive }, + VOPNAME_FID, { .vop_fid = zfs_fid }, + VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf }, + VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support }, + NULL, NULL }; /* @@ -3752,30 +3753,30 @@ const fs_operation_def_t zfs_symvnodeops_template[] = { */ vnodeops_t *zfs_xdvnodeops; const fs_operation_def_t zfs_xdvnodeops_template[] = { - VOPNAME_OPEN, zfs_open, - VOPNAME_CLOSE, zfs_close, - VOPNAME_IOCTL, zfs_ioctl, - VOPNAME_GETATTR, zfs_getattr, - VOPNAME_SETATTR, zfs_setattr, - VOPNAME_ACCESS, zfs_access, - VOPNAME_LOOKUP, zfs_lookup, - VOPNAME_CREATE, zfs_create, - VOPNAME_REMOVE, zfs_remove, - VOPNAME_LINK, zfs_link, - VOPNAME_RENAME, zfs_rename, - VOPNAME_MKDIR, zfs_inval, - VOPNAME_RMDIR, zfs_rmdir, - VOPNAME_READDIR, zfs_readdir, - VOPNAME_SYMLINK, zfs_inval, - VOPNAME_FSYNC, zfs_fsync, - VOPNAME_INACTIVE, (fs_generic_func_p) zfs_inactive, - VOPNAME_FID, zfs_fid, - VOPNAME_SEEK, zfs_seek, - VOPNAME_PATHCONF, zfs_pathconf, - VOPNAME_GETSECATTR, zfs_getsecattr, - VOPNAME_SETSECATTR, zfs_setsecattr, - VOPNAME_VNEVENT, fs_vnevent_support, - NULL, NULL + VOPNAME_OPEN, { .vop_open = zfs_open }, + VOPNAME_CLOSE, { .vop_close = zfs_close }, + VOPNAME_IOCTL, { .vop_ioctl = zfs_ioctl }, + VOPNAME_GETATTR, { .vop_getattr = zfs_getattr }, + VOPNAME_SETATTR, { .vop_setattr = zfs_setattr }, + VOPNAME_ACCESS, { .vop_access = zfs_access }, + VOPNAME_LOOKUP, { .vop_lookup = zfs_lookup }, + VOPNAME_CREATE, { .vop_create = zfs_create }, + VOPNAME_REMOVE, { .vop_remove = zfs_remove }, + VOPNAME_LINK, { .vop_link = zfs_link }, + VOPNAME_RENAME, { .vop_rename = zfs_rename }, + VOPNAME_MKDIR, { .error = zfs_inval }, + VOPNAME_RMDIR, { .vop_rmdir = zfs_rmdir }, + VOPNAME_READDIR, { .vop_readdir = zfs_readdir }, + VOPNAME_SYMLINK, { .error = zfs_inval }, + VOPNAME_FSYNC, { .vop_fsync = zfs_fsync }, + VOPNAME_INACTIVE, { .vop_inactive = zfs_inactive }, + VOPNAME_FID, { .vop_fid = zfs_fid }, + VOPNAME_SEEK, { .vop_seek = zfs_seek }, + VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf }, + VOPNAME_GETSECATTR, { .vop_getsecattr = zfs_getsecattr }, + VOPNAME_SETSECATTR, { .vop_setsecattr = zfs_setsecattr }, + VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support }, + NULL, NULL }; /* @@ -3783,7 +3784,7 @@ const fs_operation_def_t zfs_xdvnodeops_template[] = { */ vnodeops_t *zfs_evnodeops; const fs_operation_def_t zfs_evnodeops_template[] = { - VOPNAME_INACTIVE, (fs_generic_func_p) zfs_inactive, - VOPNAME_PATHCONF, zfs_pathconf, - NULL, NULL + VOPNAME_INACTIVE, { .vop_inactive = zfs_inactive }, + VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf }, + NULL, NULL }; diff --git a/usr/src/uts/common/fs/zfs/zfs_znode.c b/usr/src/uts/common/fs/zfs/zfs_znode.c index b004c1350a..a2c8bef86f 100644 --- a/usr/src/uts/common/fs/zfs/zfs_znode.c +++ b/usr/src/uts/common/fs/zfs/zfs_znode.c @@ -35,6 +35,7 @@ #include <sys/mntent.h> #include <sys/mkdev.h> #include <sys/vfs.h> +#include <sys/vfs_opreg.h> #include <sys/vnode.h> #include <sys/file.h> #include <sys/kmem.h> |