summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/zfs')
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_ctldir.c49
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_vfsops.c23
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_vnops.c177
-rw-r--r--usr/src/uts/common/fs/zfs/zfs_znode.c1
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>