summaryrefslogtreecommitdiff
path: root/usr/src/uts/common
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
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')
-rw-r--r--usr/src/uts/common/brand/lx/autofs/lx_autofs.c35
-rw-r--r--usr/src/uts/common/brand/lx/procfs/lx_prvfsops.c13
-rw-r--r--usr/src/uts/common/brand/lx/procfs/lx_prvnops.c34
-rw-r--r--usr/src/uts/common/fs/autofs/auto_vfsops.c13
-rw-r--r--usr/src/uts/common/fs/autofs/auto_vnops.c49
-rw-r--r--usr/src/uts/common/fs/cachefs/cachefs_vfsops.c20
-rw-r--r--usr/src/uts/common/fs/cachefs/cachefs_vnops.c86
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_all.c26
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_cdir.c26
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_ctl.c40
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_event.c44
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_latest.c24
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_root.c34
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_sym.c26
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_tdir.c26
-rw-r--r--usr/src/uts/common/fs/ctfs/ctfs_tmpl.c24
-rw-r--r--usr/src/uts/common/fs/dev/sdev_ptsops.c21
-rw-r--r--usr/src/uts/common/fs/dev/sdev_vfsops.c11
-rw-r--r--usr/src/uts/common/fs/dev/sdev_vnops.c57
-rw-r--r--usr/src/uts/common/fs/devfs/devfs_vfsops.c17
-rw-r--r--usr/src/uts/common/fs/devfs/devfs_vnops.c47
-rw-r--r--usr/src/uts/common/fs/doorfs/door_sys.c8
-rw-r--r--usr/src/uts/common/fs/doorfs/door_vnops.c29
-rw-r--r--usr/src/uts/common/fs/fd/fdops.c44
-rw-r--r--usr/src/uts/common/fs/fem.c220
-rw-r--r--usr/src/uts/common/fs/fifofs/fifosubr.c3
-rw-r--r--usr/src/uts/common/fs/fifofs/fifovnops.c47
-rw-r--r--usr/src/uts/common/fs/hsfs/hsfs_vfsops.c17
-rw-r--r--usr/src/uts/common/fs/hsfs/hsfs_vnops.c43
-rw-r--r--usr/src/uts/common/fs/lofs/lofs_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/lofs/lofs_vnops.c89
-rw-r--r--usr/src/uts/common/fs/mntfs/mntvfsops.c13
-rw-r--r--usr/src/uts/common/fs/mntfs/mntvnops.c34
-rw-r--r--usr/src/uts/common/fs/namefs/namevfs.c21
-rw-r--r--usr/src/uts/common/fs/namefs/namevno.c48
-rw-r--r--usr/src/uts/common/fs/nfs/nfs3_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/nfs/nfs3_vnops.c84
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_srv.c37
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_vfsops.c21
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_vnops.c82
-rw-r--r--usr/src/uts/common/fs/nfs/nfs_common.c5
-rw-r--r--usr/src/uts/common/fs/nfs/nfs_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/nfs/nfs_vnops.c81
-rw-r--r--usr/src/uts/common/fs/objfs/objfs_data.c26
-rw-r--r--usr/src/uts/common/fs/objfs/objfs_odir.c26
-rw-r--r--usr/src/uts/common/fs/objfs/objfs_root.c26
-rw-r--r--usr/src/uts/common/fs/objfs/objfs_vfs.c16
-rw-r--r--usr/src/uts/common/fs/pcfs/pc_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/pcfs/pc_vnops.c81
-rw-r--r--usr/src/uts/common/fs/portfs/port.c1
-rw-r--r--usr/src/uts/common/fs/portfs/port_vnops.c29
-rw-r--r--usr/src/uts/common/fs/proc/prvfsops.c13
-rw-r--r--usr/src/uts/common/fs/proc/prvnops.c45
-rw-r--r--usr/src/uts/common/fs/sockfs/socksctp.c1
-rw-r--r--usr/src/uts/common/fs/sockfs/socksctpsubr.c3
-rw-r--r--usr/src/uts/common/fs/sockfs/socksctpvnops.c33
-rwxr-xr-xusr/src/uts/common/fs/sockfs/socksdp.c1
-rwxr-xr-xusr/src/uts/common/fs/sockfs/socksdpsubr.c1
-rwxr-xr-xusr/src/uts/common/fs/sockfs/socksdpvnops.c33
-rw-r--r--usr/src/uts/common/fs/sockfs/socksubr.c1
-rw-r--r--usr/src/uts/common/fs/sockfs/sockvnops.c35
-rw-r--r--usr/src/uts/common/fs/specfs/specsubr.c3
-rw-r--r--usr/src/uts/common/fs/specfs/specvnops.c55
-rw-r--r--usr/src/uts/common/fs/swapfs/swap_subr.c10
-rw-r--r--usr/src/uts/common/fs/swapfs/swap_vnops.c23
-rw-r--r--usr/src/uts/common/fs/tmpfs/tmp_vfsops.c15
-rw-r--r--usr/src/uts/common/fs/tmpfs/tmp_vnops.c67
-rw-r--r--usr/src/uts/common/fs/udfs/udf_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/udfs/udf_vnops.c78
-rw-r--r--usr/src/uts/common/fs/ufs/ufs_vfsops.c19
-rw-r--r--usr/src/uts/common/fs/ufs/ufs_vnops.c84
-rw-r--r--usr/src/uts/common/fs/vfs.c71
-rw-r--r--usr/src/uts/common/fs/vnode.c1
-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
-rw-r--r--usr/src/uts/common/io/physmem.c11
-rw-r--r--usr/src/uts/common/os/vfs_conf.c4
-rw-r--r--usr/src/uts/common/sys/Makefile3
-rw-r--r--usr/src/uts/common/sys/fem.h218
-rw-r--r--usr/src/uts/common/sys/fs/sdev_impl.h1
-rw-r--r--usr/src/uts/common/sys/gfs.h8
-rw-r--r--usr/src/uts/common/sys/vfs.h39
-rw-r--r--usr/src/uts/common/sys/vfs_opreg.h116
-rw-r--r--usr/src/uts/common/sys/vnode.h184
-rw-r--r--usr/src/uts/common/vm/page_retire.c5
87 files changed, 1756 insertions, 1574 deletions
diff --git a/usr/src/uts/common/brand/lx/autofs/lx_autofs.c b/usr/src/uts/common/brand/lx/autofs/lx_autofs.c
index ecd4e8e44d..b40b508625 100644
--- a/usr/src/uts/common/brand/lx/autofs/lx_autofs.c
+++ b/usr/src/uts/common/brand/lx/autofs/lx_autofs.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -38,6 +38,7 @@
#include <sys/sysmacros.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/lx_autofs_impl.h>
@@ -1205,10 +1206,10 @@ lx_autofs_statvfs(vfs_t *vfsp, statvfs64_t *sp)
}
static const fs_operation_def_t lx_autofs_vfstops[] = {
- { VFSNAME_MOUNT, lx_autofs_mount },
- { VFSNAME_UNMOUNT, lx_autofs_unmount },
- { VFSNAME_ROOT, lx_autofs_root },
- { VFSNAME_STATVFS, lx_autofs_statvfs },
+ { VFSNAME_MOUNT, { .vfs_mount = lx_autofs_mount } },
+ { VFSNAME_UNMOUNT, { .vfs_unmount = lx_autofs_unmount } },
+ { VFSNAME_ROOT, { .vfs_root = lx_autofs_root } },
+ { VFSNAME_STATVFS, { .vfs_statvfs = lx_autofs_statvfs } },
{ NULL, NULL }
};
@@ -1427,18 +1428,18 @@ lx_autofs_ioctl(vnode_t *vp, int cmd, intptr_t arg, int mode, cred_t *cr,
* VOP entry points definitions
*/
static const fs_operation_def_t lx_autofs_tops_root[] = {
- { VOPNAME_OPEN, lx_autofs_open },
- { VOPNAME_CLOSE, lx_autofs_close },
- { VOPNAME_IOCTL, lx_autofs_ioctl },
- { VOPNAME_RWLOCK, lx_autofs_rwlock },
- { VOPNAME_RWUNLOCK, (fs_generic_func_p)lx_autofs_rwunlock },
- { VOPNAME_GETATTR, lx_autofs_getattr },
- { VOPNAME_ACCESS, lx_autofs_access },
- { VOPNAME_READDIR, lx_autofs_readdir },
- { VOPNAME_LOOKUP, lx_autofs_lookup },
- { VOPNAME_INACTIVE, (fs_generic_func_p)lx_autofs_inactive },
- { VOPNAME_MKDIR, lx_autofs_mkdir },
- { VOPNAME_RMDIR, lx_autofs_rmdir },
+ { VOPNAME_OPEN, { .vop_open = lx_autofs_open } },
+ { VOPNAME_CLOSE, { .vop_close = lx_autofs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = lx_autofs_ioctl } },
+ { VOPNAME_RWLOCK, { .vop_rwlock = lx_autofs_rwlock } },
+ { VOPNAME_RWUNLOCK, { .vop_rwunlock = lx_autofs_rwunlock } },
+ { VOPNAME_GETATTR, { .vop_getattr = lx_autofs_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = lx_autofs_access } },
+ { VOPNAME_READDIR, { .vop_readdir = lx_autofs_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = lx_autofs_lookup } },
+ { VOPNAME_INACTIVE, { .vop_inactive = lx_autofs_inactive } },
+ { VOPNAME_MKDIR, { .vop_mkdir = lx_autofs_mkdir } },
+ { VOPNAME_RMDIR, { .vop_rmdir = lx_autofs_rmdir } },
{ NULL }
};
diff --git a/usr/src/uts/common/brand/lx/procfs/lx_prvfsops.c b/usr/src/uts/common/brand/lx/procfs/lx_prvfsops.c
index 44891dc612..036e366254 100644
--- a/usr/src/uts/common/brand/lx/procfs/lx_prvfsops.c
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prvfsops.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.
*/
@@ -42,6 +42,7 @@
#include <sys/systm.h>
#include <sys/var.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/mode.h>
#include <sys/signal.h>
@@ -134,11 +135,11 @@ static int
lxpr_init(int fstype, char *name)
{
static const fs_operation_def_t lxpr_vfsops_template[] = {
- VFSNAME_MOUNT, lxpr_mount,
- VFSNAME_UNMOUNT, lxpr_unmount,
- VFSNAME_ROOT, lxpr_root,
- VFSNAME_STATVFS, lxpr_statvfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = lxpr_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = lxpr_unmount },
+ VFSNAME_ROOT, { .vfs_root = lxpr_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = lxpr_statvfs },
+ NULL, NULL
};
extern const fs_operation_def_t lxpr_vnodeops_template[];
int error;
diff --git a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
index 815ef1dd46..bc1de2eefd 100644
--- a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
@@ -58,6 +58,7 @@
#include <sys/pset.h>
#include <sys/zone.h>
#include <sys/pghw.h>
+#include <sys/vfs_opreg.h>
/* Dependent on the Solaris procfs */
extern kthread_t *prchoose(proc_t *);
@@ -82,7 +83,7 @@ static int lxpr_access(vnode_t *, int, int, cred_t *);
static int lxpr_lookup(vnode_t *, char *, vnode_t **,
pathname_t *, int, vnode_t *, cred_t *);
static int lxpr_readdir(vnode_t *, uio_t *, cred_t *, int *);
-static int lxpr_readlink(vnode_t *, uio_t *);
+static int lxpr_readlink(vnode_t *, uio_t *, cred_t *);
static int lxpr_cmp(vnode_t *, vnode_t *);
static int lxpr_realvp(vnode_t *, vnode_t **);
static int lxpr_sync(void);
@@ -149,20 +150,20 @@ static void lxpr_read_net_unix(lxpr_node_t *, lxpr_uiobuf_t *);
* The lx /proc vnode operations vector
*/
const fs_operation_def_t lxpr_vnodeops_template[] = {
- VOPNAME_OPEN, lxpr_open,
- VOPNAME_CLOSE, lxpr_close,
- VOPNAME_READ, lxpr_read,
- VOPNAME_GETATTR, lxpr_getattr,
- VOPNAME_ACCESS, lxpr_access,
- VOPNAME_LOOKUP, lxpr_lookup,
- VOPNAME_READDIR, lxpr_readdir,
- VOPNAME_READLINK, lxpr_readlink,
- VOPNAME_FSYNC, lxpr_sync,
- VOPNAME_SEEK, lxpr_sync,
- VOPNAME_INACTIVE, (fs_generic_func_p) lxpr_inactive,
- VOPNAME_CMP, lxpr_cmp,
- VOPNAME_REALVP, lxpr_realvp,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = lxpr_open },
+ VOPNAME_CLOSE, { .vop_close = lxpr_close },
+ VOPNAME_READ, { .vop_read = lxpr_read },
+ VOPNAME_GETATTR, { .vop_getattr = lxpr_getattr },
+ VOPNAME_ACCESS, { .vop_access = lxpr_access },
+ VOPNAME_LOOKUP, { .vop_lookup = lxpr_lookup },
+ VOPNAME_READDIR, { .vop_readdir = lxpr_readdir },
+ VOPNAME_READLINK, { .vop_readlink = lxpr_readlink },
+ VOPNAME_FSYNC, { .error = lxpr_sync },
+ VOPNAME_SEEK, { .error = lxpr_sync },
+ VOPNAME_INACTIVE, { .vop_inactive = lxpr_inactive },
+ VOPNAME_CMP, { .vop_cmp = lxpr_cmp },
+ VOPNAME_REALVP, { .vop_realvp = lxpr_realvp },
+ NULL, NULL
};
@@ -2829,8 +2830,9 @@ out:
/*
* lxpr_readlink(): Vnode operation for VOP_READLINK()
*/
+/* ARGSUSED */
static int
-lxpr_readlink(vnode_t *vp, uio_t *uiop)
+lxpr_readlink(vnode_t *vp, uio_t *uiop, cred_t *cr)
{
char bp[MAXPATHLEN + 1];
size_t buflen = sizeof (bp);
diff --git a/usr/src/uts/common/fs/autofs/auto_vfsops.c b/usr/src/uts/common/fs/autofs/auto_vfsops.c
index 10b40850d8..4b5040bfc4 100644
--- a/usr/src/uts/common/fs/autofs/auto_vfsops.c
+++ b/usr/src/uts/common/fs/autofs/auto_vfsops.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.
*/
@@ -30,6 +30,7 @@
#include <sys/proc.h>
#include <sys/disp.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/uio.h>
#include <sys/kmem.h>
@@ -250,11 +251,11 @@ int
autofs_init(int fstype, char *name)
{
static const fs_operation_def_t auto_vfsops_template[] = {
- VFSNAME_MOUNT, auto_mount,
- VFSNAME_UNMOUNT, auto_unmount,
- VFSNAME_ROOT, auto_root,
- VFSNAME_STATVFS, auto_statvfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = auto_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = auto_unmount },
+ VFSNAME_ROOT, { .vfs_root = auto_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = auto_statvfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/autofs/auto_vnops.c b/usr/src/uts/common/fs/autofs/auto_vnops.c
index 16c5a26781..0587ed066e 100644
--- a/usr/src/uts/common/fs/autofs/auto_vnops.c
+++ b/usr/src/uts/common/fs/autofs/auto_vnops.c
@@ -31,6 +31,7 @@
#include <sys/proc.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>
@@ -81,30 +82,30 @@ static int auto_trigger_mount(vnode_t *, cred_t *, vnode_t **);
vnodeops_t *auto_vnodeops;
const fs_operation_def_t auto_vnodeops_template[] = {
- VOPNAME_OPEN, auto_open,
- VOPNAME_CLOSE, auto_close,
- VOPNAME_GETATTR, auto_getattr,
- VOPNAME_SETATTR, auto_setattr,
- VOPNAME_ACCESS, auto_access,
- VOPNAME_LOOKUP, auto_lookup,
- VOPNAME_CREATE, auto_create,
- VOPNAME_REMOVE, auto_remove,
- VOPNAME_LINK, auto_link,
- VOPNAME_RENAME, auto_rename,
- VOPNAME_MKDIR, auto_mkdir,
- VOPNAME_RMDIR, auto_rmdir,
- VOPNAME_READDIR, auto_readdir,
- VOPNAME_SYMLINK, auto_symlink,
- VOPNAME_READLINK, auto_readlink,
- VOPNAME_FSYNC, auto_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) auto_inactive,
- VOPNAME_RWLOCK, auto_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) auto_rwunlock,
- VOPNAME_SEEK, auto_seek,
- VOPNAME_FRLOCK, fs_error,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = auto_open },
+ VOPNAME_CLOSE, { .vop_close = auto_close },
+ VOPNAME_GETATTR, { .vop_getattr = auto_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = auto_setattr },
+ VOPNAME_ACCESS, { .vop_access = auto_access },
+ VOPNAME_LOOKUP, { .vop_lookup = auto_lookup },
+ VOPNAME_CREATE, { .vop_create = auto_create },
+ VOPNAME_REMOVE, { .vop_remove = auto_remove },
+ VOPNAME_LINK, { .vop_link = auto_link },
+ VOPNAME_RENAME, { .vop_rename = auto_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = auto_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = auto_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = auto_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = auto_symlink },
+ VOPNAME_READLINK, { .vop_readlink = auto_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = auto_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = auto_inactive },
+ VOPNAME_RWLOCK, { .vop_rwlock = auto_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = auto_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = auto_seek },
+ VOPNAME_FRLOCK, { .error = fs_error },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/cachefs/cachefs_vfsops.c b/usr/src/uts/common/fs/cachefs/cachefs_vfsops.c
index 81be82c033..fd1ee0b4d8 100644
--- a/usr/src/uts/common/fs/cachefs/cachefs_vfsops.c
+++ b/usr/src/uts/common/fs/cachefs/cachefs_vfsops.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -33,6 +32,7 @@
#include <sys/proc.h>
#include <sys/user.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pathname.h>
#include <sys/uio.h>
@@ -98,12 +98,12 @@ int
cachefs_init_vfsops(int fstype)
{
static const fs_operation_def_t cachefs_vfsops_template[] = {
- VFSNAME_MOUNT, cachefs_mount,
- VFSNAME_UNMOUNT, cachefs_unmount,
- VFSNAME_ROOT, cachefs_root,
- VFSNAME_STATVFS, cachefs_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) cachefs_sync,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = cachefs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = cachefs_unmount },
+ VFSNAME_ROOT, { .vfs_root = cachefs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = cachefs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = cachefs_sync },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/cachefs/cachefs_vnops.c b/usr/src/uts/common/fs/cachefs/cachefs_vnops.c
index 796d4a7173..5451c20467 100644
--- a/usr/src/uts/common/fs/cachefs/cachefs_vnops.c
+++ b/usr/src/uts/common/fs/cachefs/cachefs_vnops.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -35,6 +34,7 @@
#include <sys/time.h>
#include <sys/vnode.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/filio.h>
#include <sys/uio.h>
@@ -246,45 +246,45 @@ static int cachefs_space_backfs_nfsv4(struct vnode *vp, int cmd,
struct vnodeops *cachefs_vnodeops;
static const fs_operation_def_t cachefs_vnodeops_template[] = {
- VOPNAME_OPEN, cachefs_open,
- VOPNAME_CLOSE, cachefs_close,
- VOPNAME_READ, cachefs_read,
- VOPNAME_WRITE, cachefs_write,
- VOPNAME_IOCTL, cachefs_ioctl,
- VOPNAME_GETATTR, cachefs_getattr,
- VOPNAME_SETATTR, cachefs_setattr,
- VOPNAME_ACCESS, cachefs_access,
- VOPNAME_LOOKUP, cachefs_lookup,
- VOPNAME_CREATE, cachefs_create,
- VOPNAME_REMOVE, cachefs_remove,
- VOPNAME_LINK, cachefs_link,
- VOPNAME_RENAME, cachefs_rename,
- VOPNAME_MKDIR, cachefs_mkdir,
- VOPNAME_RMDIR, cachefs_rmdir,
- VOPNAME_READDIR, cachefs_readdir,
- VOPNAME_SYMLINK, cachefs_symlink,
- VOPNAME_READLINK, cachefs_readlink,
- VOPNAME_FSYNC, cachefs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) cachefs_inactive,
- VOPNAME_FID, cachefs_fid,
- VOPNAME_RWLOCK, cachefs_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) cachefs_rwunlock,
- VOPNAME_SEEK, cachefs_seek,
- VOPNAME_FRLOCK, cachefs_frlock,
- VOPNAME_SPACE, cachefs_space,
- VOPNAME_REALVP, cachefs_realvp,
- VOPNAME_GETPAGE, cachefs_getpage,
- VOPNAME_PUTPAGE, cachefs_putpage,
- VOPNAME_MAP, (fs_generic_func_p) cachefs_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) cachefs_addmap,
- VOPNAME_DELMAP, cachefs_delmap,
- VOPNAME_DUMP, cachefs_dump,
- VOPNAME_PATHCONF, cachefs_pathconf,
- VOPNAME_PAGEIO, cachefs_pageio,
- VOPNAME_SETSECATTR, cachefs_setsecattr,
- VOPNAME_GETSECATTR, cachefs_getsecattr,
- VOPNAME_SHRLOCK, cachefs_shrlock,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = cachefs_open },
+ VOPNAME_CLOSE, { .vop_close = cachefs_close },
+ VOPNAME_READ, { .vop_read = cachefs_read },
+ VOPNAME_WRITE, { .vop_write = cachefs_write },
+ VOPNAME_IOCTL, { .vop_ioctl = cachefs_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = cachefs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = cachefs_setattr },
+ VOPNAME_ACCESS, { .vop_access = cachefs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = cachefs_lookup },
+ VOPNAME_CREATE, { .vop_create = cachefs_create },
+ VOPNAME_REMOVE, { .vop_remove = cachefs_remove },
+ VOPNAME_LINK, { .vop_link = cachefs_link },
+ VOPNAME_RENAME, { .vop_rename = cachefs_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = cachefs_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = cachefs_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = cachefs_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = cachefs_symlink },
+ VOPNAME_READLINK, { .vop_readlink = cachefs_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = cachefs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = cachefs_inactive },
+ VOPNAME_FID, { .vop_fid = cachefs_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = cachefs_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = cachefs_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = cachefs_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = cachefs_frlock },
+ VOPNAME_SPACE, { .vop_space = cachefs_space },
+ VOPNAME_REALVP, { .vop_realvp = cachefs_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = cachefs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = cachefs_putpage },
+ VOPNAME_MAP, { .vop_map = cachefs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = cachefs_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = cachefs_delmap },
+ VOPNAME_DUMP, { .vop_dump = cachefs_dump },
+ VOPNAME_PATHCONF, { .vop_pathconf = cachefs_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = cachefs_pageio },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = cachefs_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = cachefs_getsecattr },
+ VOPNAME_SHRLOCK, { .vop_shrlock = cachefs_shrlock },
+ NULL, NULL
};
/* forward declarations of statics */
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_all.c b/usr/src/uts/common/fs/ctfs/ctfs_all.c
index 4933edd960..382f66da8a 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_all.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_all.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -135,14 +135,14 @@ ctfs_adir_do_readdir(vnode_t *vp, struct dirent64 *dp, int *eofp,
}
const fs_operation_def_t ctfs_tops_adir[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_adir_getattr },
- { VOPNAME_ACCESS, ctfs_access_dir },
- { VOPNAME_READDIR, gfs_vop_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_adir_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_dir } },
+ { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_cdir.c b/usr/src/uts/common/fs/ctfs/ctfs_cdir.c
index 0f038b8b13..4861f73244 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_cdir.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_cdir.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -149,14 +149,14 @@ ctfs_cdir_inactive(vnode_t *vp, cred_t *cr)
const fs_operation_def_t ctfs_tops_cdir[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_cdir_getattr },
- { VOPNAME_ACCESS, ctfs_access_dir },
- { VOPNAME_READDIR, gfs_vop_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p) ctfs_cdir_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_cdir_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_dir } },
+ { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = ctfs_cdir_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_ctl.c b/usr/src/uts/common/fs/ctfs/ctfs_ctl.c
index f4980d4a97..43b5813ff1 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_ctl.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_ctl.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -183,14 +183,14 @@ ctfs_ctl_ioctl(vnode_t *vp, int cmd, intptr_t arg, int flag, cred_t *cr,
}
const fs_operation_def_t ctfs_tops_ctl[] = {
- { VOPNAME_OPEN, ctfs_ctl_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, ctfs_ctl_ioctl },
- { VOPNAME_GETATTR, ctfs_ctl_getattr },
- { VOPNAME_ACCESS, ctfs_ctl_access },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_ctl_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = ctfs_ctl_ioctl } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_ctl_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_ctl_access } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
@@ -276,13 +276,13 @@ ctfs_stat_ioctl(vnode_t *vp, int cmd, intptr_t arg, int flag, cred_t *cr,
}
const fs_operation_def_t ctfs_tops_stat[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, ctfs_stat_ioctl },
- { VOPNAME_GETATTR, ctfs_ctl_getattr },
- { VOPNAME_ACCESS, ctfs_access_readonly },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = ctfs_stat_ioctl } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_ctl_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_readonly } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_event.c b/usr/src/uts/common/fs/ctfs/ctfs_event.c
index 7fa7cfb608..ac4447e493 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_event.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_event.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -304,15 +304,15 @@ ctfs_ev_poll(vnode_t *vp, short events, int anyyet, short *reventsp,
}
const fs_operation_def_t ctfs_tops_event[] = {
- { VOPNAME_OPEN, ctfs_ev_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, ctfs_ev_ioctl },
- { VOPNAME_GETATTR, ctfs_ev_getattr },
- { VOPNAME_ACCESS, ctfs_ev_access },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) ctfs_ev_inactive },
- { VOPNAME_POLL, (fs_generic_func_p) ctfs_ev_poll },
+ { VOPNAME_OPEN, { .vop_open = ctfs_ev_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = ctfs_ev_ioctl } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_ev_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_ev_access } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = ctfs_ev_inactive } },
+ { VOPNAME_POLL, { .vop_poll = ctfs_ev_poll } },
{ NULL, NULL }
};
@@ -447,14 +447,14 @@ ctfs_bu_poll(vnode_t *vp, short events, int anyyet, short *reventsp,
}
const fs_operation_def_t ctfs_tops_bundle[] = {
- { VOPNAME_OPEN, ctfs_bu_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, ctfs_bu_ioctl },
- { VOPNAME_GETATTR, ctfs_bu_getattr },
- { VOPNAME_ACCESS, ctfs_access_readonly },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) ctfs_bu_inactive },
- { VOPNAME_POLL, (fs_generic_func_p) ctfs_bu_poll },
+ { VOPNAME_OPEN, { .vop_open = ctfs_bu_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = ctfs_bu_ioctl } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_bu_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_readonly } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = ctfs_bu_inactive } },
+ { VOPNAME_POLL, { .vop_poll = ctfs_bu_poll } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_latest.c b/usr/src/uts/common/fs/ctfs/ctfs_latest.c
index 27ee75917e..7d15dd494a 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_latest.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_latest.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -162,13 +162,13 @@ ctfs_latest_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr)
}
const fs_operation_def_t ctfs_tops_latest[] = {
- { VOPNAME_OPEN, ctfs_latest_open },
- { VOPNAME_CLOSE, fs_inval },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_latest_getattr },
- { VOPNAME_ACCESS, ctfs_latest_access },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_latest_open } },
+ { VOPNAME_CLOSE, { .error = fs_inval } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_latest_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_latest_access } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_root.c b/usr/src/uts/common/fs/ctfs/ctfs_root.c
index 92f0e9027d..1616a986cd 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_root.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_root.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -32,6 +31,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -364,10 +364,10 @@ ctfs_statvfs(vfs_t *vfsp, statvfs64_t *sp)
}
static const fs_operation_def_t ctfs_vfstops[] = {
- { VFSNAME_MOUNT, ctfs_mount },
- { VFSNAME_UNMOUNT, ctfs_unmount },
- { VFSNAME_ROOT, ctfs_root },
- { VFSNAME_STATVFS, ctfs_statvfs },
+ { VFSNAME_MOUNT, { .vfs_mount = ctfs_mount } },
+ { VFSNAME_UNMOUNT, { .vfs_unmount = ctfs_unmount } },
+ { VFSNAME_ROOT, { .vfs_root = ctfs_root } },
+ { VFSNAME_STATVFS, { .vfs_statvfs = ctfs_statvfs } },
{ NULL, NULL }
};
@@ -485,14 +485,14 @@ ctfs_root_do_inode(vnode_t *vp, int index)
}
static const fs_operation_def_t ctfs_tops_root[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_root_getattr },
- { VOPNAME_ACCESS, ctfs_access_dir },
- { VOPNAME_READDIR, gfs_vop_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_root_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_dir } },
+ { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_sym.c b/usr/src/uts/common/fs/ctfs/ctfs_sym.c
index 14bd5f1694..bf825ab366 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_sym.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_sym.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -129,14 +129,14 @@ ctfs_sym_inactive(vnode_t *vp, cred_t *cr)
}
const fs_operation_def_t ctfs_tops_sym[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_sym_getattr },
- { VOPNAME_READLINK, ctfs_sym_readlink },
- { VOPNAME_ACCESS, ctfs_access_readonly },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) ctfs_sym_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_sym_getattr } },
+ { VOPNAME_READLINK, { .vop_readlink = ctfs_sym_readlink } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_readonly } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = ctfs_sym_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_tdir.c b/usr/src/uts/common/fs/ctfs/ctfs_tdir.c
index 1f5dd42370..2d47c72339 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_tdir.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_tdir.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -146,14 +146,14 @@ ctfs_tdir_do_lookup(vnode_t *vp, const char *nm, vnode_t **vpp, ino64_t *inop)
}
const fs_operation_def_t ctfs_tops_tdir[] = {
- { VOPNAME_OPEN, ctfs_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, ctfs_tdir_getattr },
- { VOPNAME_ACCESS, ctfs_access_dir },
- { VOPNAME_READDIR, gfs_vop_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_tdir_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_dir } },
+ { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/ctfs/ctfs_tmpl.c b/usr/src/uts/common/fs/ctfs/ctfs_tmpl.c
index 329ae49fd9..28d0c93662 100644
--- a/usr/src/uts/common/fs/ctfs/ctfs_tmpl.c
+++ b/usr/src/uts/common/fs/ctfs/ctfs_tmpl.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/time.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/systm.h>
@@ -164,13 +164,13 @@ ctfs_tmpl_inactive(vnode_t *vp, cred_t *cr)
}
const fs_operation_def_t ctfs_tops_tmpl[] = {
- { VOPNAME_OPEN, ctfs_tmpl_open },
- { VOPNAME_CLOSE, ctfs_close },
- { VOPNAME_IOCTL, ctfs_tmpl_ioctl },
- { VOPNAME_GETATTR, ctfs_tmpl_getattr },
- { VOPNAME_ACCESS, ctfs_access_readwrite },
- { VOPNAME_READDIR, fs_notdir },
- { VOPNAME_LOOKUP, fs_notdir },
- { VOPNAME_INACTIVE, (fs_generic_func_p) ctfs_tmpl_inactive },
+ { VOPNAME_OPEN, { .vop_open = ctfs_tmpl_open } },
+ { VOPNAME_CLOSE, { .vop_close = ctfs_close } },
+ { VOPNAME_IOCTL, { .vop_ioctl = ctfs_tmpl_ioctl } },
+ { VOPNAME_GETATTR, { .vop_getattr = ctfs_tmpl_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = ctfs_access_readwrite } },
+ { VOPNAME_READDIR, { .error = fs_notdir } },
+ { VOPNAME_LOOKUP, { .error = fs_notdir } },
+ { VOPNAME_INACTIVE, { .vop_inactive = ctfs_tmpl_inactive } },
{ NULL, NULL }
};
diff --git a/usr/src/uts/common/fs/dev/sdev_ptsops.c b/usr/src/uts/common/fs/dev/sdev_ptsops.c
index 8cdbee7985..64493f6402 100644
--- a/usr/src/uts/common/fs/dev/sdev_ptsops.c
+++ b/usr/src/uts/common/fs/dev/sdev_ptsops.c
@@ -42,6 +42,7 @@
#include <sys/policy.h>
#include <sys/ptms.h>
#include <sys/stat.h>
+#include <sys/vfs_opreg.h>
#define DEVPTS_UID_DEFAULT 0
#define DEVPTS_GID_DEFAULT 3
@@ -408,14 +409,14 @@ devpts_setattr(struct vnode *vp, struct vattr *vap, int flags,
* avoid persisting permissions.
*/
const fs_operation_def_t devpts_vnodeops_tbl[] = {
- VOPNAME_READDIR, devpts_readdir,
- VOPNAME_LOOKUP, devpts_lookup,
- VOPNAME_CREATE, devpts_create,
- VOPNAME_SETATTR, devpts_setattr,
- VOPNAME_REMOVE, fs_nosys,
- VOPNAME_MKDIR, fs_nosys,
- VOPNAME_RMDIR, fs_nosys,
- VOPNAME_SYMLINK, fs_nosys,
- VOPNAME_SETSECATTR, fs_nosys,
- NULL, NULL
+ VOPNAME_READDIR, { .vop_readdir = devpts_readdir },
+ VOPNAME_LOOKUP, { .vop_lookup = devpts_lookup },
+ VOPNAME_CREATE, { .vop_create = devpts_create },
+ VOPNAME_SETATTR, { .vop_setattr = devpts_setattr },
+ VOPNAME_REMOVE, { .error = fs_nosys },
+ VOPNAME_MKDIR, { .error = fs_nosys },
+ VOPNAME_RMDIR, { .error = fs_nosys },
+ VOPNAME_SYMLINK, { .error = fs_nosys },
+ VOPNAME_SETSECATTR, { .error = fs_nosys },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/dev/sdev_vfsops.c b/usr/src/uts/common/fs/dev/sdev_vfsops.c
index 5baf66ea1d..ca971fe30c 100644
--- a/usr/src/uts/common/fs/dev/sdev_vfsops.c
+++ b/usr/src/uts/common/fs/dev/sdev_vfsops.c
@@ -37,6 +37,7 @@
#include <sys/time.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/file.h>
#include <sys/stat.h>
@@ -144,11 +145,11 @@ static int
devinit(int fstype, char *name)
{
static const fs_operation_def_t dev_vfsops_tbl[] = {
- VFSNAME_MOUNT, sdev_mount, /* mount file system */
- VFSNAME_UNMOUNT, sdev_unmount, /* unmount file system */
- VFSNAME_ROOT, sdev_root, /* get root vnode */
- VFSNAME_STATVFS, sdev_statvfs, /* get file system statistics */
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = sdev_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = sdev_unmount },
+ VFSNAME_ROOT, { .vfs_root = sdev_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = sdev_statvfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/dev/sdev_vnops.c b/usr/src/uts/common/fs/dev/sdev_vnops.c
index 4cad8b53e8..9591d100cf 100644
--- a/usr/src/uts/common/fs/dev/sdev_vnops.c
+++ b/usr/src/uts/common/fs/dev/sdev_vnops.c
@@ -44,6 +44,7 @@
#include <sys/time.h>
#include <sys/vfs.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/fcntl.h>
#include <sys/flock.h>
@@ -1347,34 +1348,34 @@ sdev_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr)
vnodeops_t *sdev_vnodeops;
const fs_operation_def_t sdev_vnodeops_tbl[] = {
- VOPNAME_OPEN, sdev_open,
- VOPNAME_CLOSE, sdev_close,
- VOPNAME_READ, sdev_read,
- VOPNAME_WRITE, sdev_write,
- VOPNAME_IOCTL, sdev_ioctl,
- VOPNAME_GETATTR, sdev_getattr,
- VOPNAME_SETATTR, sdev_setattr,
- VOPNAME_ACCESS, sdev_access,
- VOPNAME_LOOKUP, sdev_lookup,
- VOPNAME_CREATE, sdev_create,
- VOPNAME_RENAME, sdev_rename,
- VOPNAME_REMOVE, sdev_remove,
- VOPNAME_MKDIR, sdev_mkdir,
- VOPNAME_RMDIR, sdev_rmdir,
- VOPNAME_READDIR, sdev_readdir,
- VOPNAME_SYMLINK, sdev_symlink,
- VOPNAME_READLINK, sdev_readlink, /* readlink */
- VOPNAME_INACTIVE, (fs_generic_func_p)sdev_inactive,
- VOPNAME_FID, sdev_fid,
- VOPNAME_RWLOCK, (fs_generic_func_p)sdev_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p)sdev_rwunlock,
- VOPNAME_SEEK, sdev_seek,
- VOPNAME_FRLOCK, sdev_frlock,
- VOPNAME_PATHCONF, sdev_pathconf,
- VOPNAME_SETFL, sdev_setfl,
- VOPNAME_SETSECATTR, sdev_setsecattr, /* setsecattr */
- VOPNAME_GETSECATTR, sdev_getsecattr, /* getsecattr */
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = sdev_open },
+ VOPNAME_CLOSE, { .vop_close = sdev_close },
+ VOPNAME_READ, { .vop_read = sdev_read },
+ VOPNAME_WRITE, { .vop_write = sdev_write },
+ VOPNAME_IOCTL, { .vop_ioctl = sdev_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = sdev_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = sdev_setattr },
+ VOPNAME_ACCESS, { .vop_access = sdev_access },
+ VOPNAME_LOOKUP, { .vop_lookup = sdev_lookup },
+ VOPNAME_CREATE, { .vop_create = sdev_create },
+ VOPNAME_RENAME, { .vop_rename = sdev_rename },
+ VOPNAME_REMOVE, { .vop_remove = sdev_remove },
+ VOPNAME_MKDIR, { .vop_mkdir = sdev_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = sdev_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = sdev_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = sdev_symlink },
+ VOPNAME_READLINK, { .vop_readlink = sdev_readlink },
+ VOPNAME_INACTIVE, { .vop_inactive = sdev_inactive },
+ VOPNAME_FID, { .vop_fid = sdev_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = sdev_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = sdev_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = sdev_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = sdev_frlock },
+ VOPNAME_PATHCONF, { .vop_pathconf = sdev_pathconf },
+ VOPNAME_SETFL, { .vop_setfl = sdev_setfl },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = sdev_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = sdev_getsecattr },
+ NULL, NULL
};
int sdev_vnodeops_tbl_size = sizeof (sdev_vnodeops_tbl);
diff --git a/usr/src/uts/common/fs/devfs/devfs_vfsops.c b/usr/src/uts/common/fs/devfs/devfs_vfsops.c
index a0a69bb77d..2e83ba30cd 100644
--- a/usr/src/uts/common/fs/devfs/devfs_vfsops.c
+++ b/usr/src/uts/common/fs/devfs/devfs_vfsops.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.
*/
@@ -42,6 +42,7 @@
#include <sys/time.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/stat.h>
#include <sys/uio.h>
@@ -129,13 +130,13 @@ static int
devfsinit(int fstype, char *name)
{
static const fs_operation_def_t devfs_vfsops_template[] = {
- VFSNAME_MOUNT, devfs_mount,
- VFSNAME_UNMOUNT, devfs_unmount,
- VFSNAME_ROOT, devfs_root,
- VFSNAME_STATVFS, devfs_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) fs_sync,
- VFSNAME_MOUNTROOT, devfs_mountroot,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = devfs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = devfs_unmount },
+ VFSNAME_ROOT, { .vfs_root = devfs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = devfs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = fs_sync },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = devfs_mountroot },
+ NULL, NULL
};
int error;
int dev;
diff --git a/usr/src/uts/common/fs/devfs/devfs_vnops.c b/usr/src/uts/common/fs/devfs/devfs_vnops.c
index 3d2d696b38..c55295b0f6 100644
--- a/usr/src/uts/common/fs/devfs/devfs_vnops.c
+++ b/usr/src/uts/common/fs/devfs/devfs_vnops.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.
*/
@@ -44,6 +44,7 @@
#include <sys/time.h>
#include <sys/vfs.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/fcntl.h>
#include <sys/flock.h>
@@ -1104,26 +1105,26 @@ devfs_seek(struct vnode *vp, offset_t ooff, offset_t *noffp)
vnodeops_t *dv_vnodeops;
const fs_operation_def_t dv_vnodeops_template[] = {
- VOPNAME_OPEN, devfs_open,
- VOPNAME_CLOSE, devfs_close,
- VOPNAME_READ, devfs_read,
- VOPNAME_WRITE, devfs_write,
- VOPNAME_IOCTL, devfs_ioctl,
- VOPNAME_GETATTR, devfs_getattr,
- VOPNAME_SETATTR, devfs_setattr,
- VOPNAME_ACCESS, devfs_access,
- VOPNAME_LOOKUP, devfs_lookup,
- VOPNAME_CREATE, devfs_create,
- VOPNAME_READDIR, devfs_readdir,
- VOPNAME_FSYNC, devfs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) devfs_inactive,
- VOPNAME_FID, devfs_fid,
- VOPNAME_RWLOCK, devfs_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) devfs_rwunlock,
- VOPNAME_SEEK, devfs_seek,
- VOPNAME_PATHCONF, devfs_pathconf,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_SETSECATTR, devfs_setsecattr,
- VOPNAME_GETSECATTR, devfs_getsecattr,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = devfs_open },
+ VOPNAME_CLOSE, { .vop_close = devfs_close },
+ VOPNAME_READ, { .vop_read = devfs_read },
+ VOPNAME_WRITE, { .vop_write = devfs_write },
+ VOPNAME_IOCTL, { .vop_ioctl = devfs_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = devfs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = devfs_setattr },
+ VOPNAME_ACCESS, { .vop_access = devfs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = devfs_lookup },
+ VOPNAME_CREATE, { .vop_create = devfs_create },
+ VOPNAME_READDIR, { .vop_readdir = devfs_readdir },
+ VOPNAME_FSYNC, { .vop_fsync = devfs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = devfs_inactive },
+ VOPNAME_FID, { .vop_fid = devfs_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = devfs_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = devfs_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = devfs_seek },
+ VOPNAME_PATHCONF, { .vop_pathconf = devfs_pathconf },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = devfs_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = devfs_getsecattr },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/doorfs/door_sys.c b/usr/src/uts/common/fs/doorfs/door_sys.c
index 46a251b538..c139032e70 100644
--- a/usr/src/uts/common/fs/doorfs/door_sys.c
+++ b/usr/src/uts/common/fs/doorfs/door_sys.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -21,7 +20,7 @@
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -48,6 +47,7 @@
#include <sys/fcntl.h>
#include <sys/vnode.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/sobject.h>
#include <sys/schedctl.h>
#include <sys/callb.h>
diff --git a/usr/src/uts/common/fs/doorfs/door_vnops.c b/usr/src/uts/common/fs/doorfs/door_vnops.c
index 3e7b420533..6d61c34f30 100644
--- a/usr/src/uts/common/fs/doorfs/door_vnops.c
+++ b/usr/src/uts/common/fs/doorfs/door_vnops.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.
*/
@@ -27,6 +27,7 @@
#include <sys/types.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/door.h>
#include <sys/proc.h>
#include <sys/kmem.h>
@@ -52,19 +53,19 @@ struct vfs door_vfs;
struct vnodeops *door_vnodeops;
const fs_operation_def_t door_vnodeops_template[] = {
- VOPNAME_OPEN, door_open,
- VOPNAME_CLOSE, door_close,
- VOPNAME_GETATTR, door_getattr,
- VOPNAME_ACCESS, door_access,
- VOPNAME_INACTIVE, (fs_generic_func_p) door_inactive,
- VOPNAME_FRLOCK, fs_error,
- VOPNAME_REALVP, door_realvp,
- VOPNAME_POLL, fs_error,
- VOPNAME_PATHCONF, fs_error,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_GETSECATTR, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = door_open },
+ VOPNAME_CLOSE, { .vop_close = door_close },
+ VOPNAME_GETATTR, { .vop_getattr = door_getattr },
+ VOPNAME_ACCESS, { .vop_access = door_access },
+ VOPNAME_INACTIVE, { .vop_inactive = door_inactive },
+ VOPNAME_FRLOCK, { .error = fs_error },
+ VOPNAME_REALVP, { .vop_realvp = door_realvp },
+ VOPNAME_POLL, { .error = fs_error },
+ VOPNAME_PATHCONF, { .error = fs_error },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_GETSECATTR, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
/* ARGSUSED */
diff --git a/usr/src/uts/common/fs/fd/fdops.c b/usr/src/uts/common/fs/fd/fdops.c
index 5d6f2f0a71..3033d0ae06 100644
--- a/usr/src/uts/common/fs/fd/fdops.c
+++ b/usr/src/uts/common/fs/fd/fdops.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -47,6 +46,7 @@
#include <sys/systm.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/cred.h>
#include <sys/mntent.h>
@@ -316,19 +316,19 @@ fdinactive(vnode_t *vp, cred_t *cr)
static struct vnodeops *fd_vnodeops;
static const fs_operation_def_t fd_vnodeops_template[] = {
- VOPNAME_OPEN, fdopen,
- VOPNAME_CLOSE, fdclose,
- VOPNAME_READ, fdread,
- VOPNAME_GETATTR, fdgetattr,
- VOPNAME_ACCESS, fdaccess,
- VOPNAME_LOOKUP, fdlookup,
- VOPNAME_CREATE, fdcreate,
- VOPNAME_READDIR, fdreaddir,
- VOPNAME_INACTIVE, (fs_generic_func_p) fdinactive,
- VOPNAME_FRLOCK, fs_error,
- VOPNAME_POLL, fs_error,
- VOPNAME_DISPOSE, fs_error, /* XXX - used to be default action instead */
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = fdopen },
+ VOPNAME_CLOSE, { .vop_close = fdclose },
+ VOPNAME_READ, { .vop_read = fdread },
+ VOPNAME_GETATTR, { .vop_getattr = fdgetattr },
+ VOPNAME_ACCESS, { .vop_access = fdaccess },
+ VOPNAME_LOOKUP, { .vop_lookup = fdlookup },
+ VOPNAME_CREATE, { .vop_create = fdcreate },
+ VOPNAME_READDIR, { .vop_readdir = fdreaddir },
+ VOPNAME_INACTIVE, { .vop_inactive = fdinactive },
+ VOPNAME_FRLOCK, { .error = fs_error },
+ VOPNAME_POLL, { .error = fs_error },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ NULL, NULL
};
static int
@@ -477,11 +477,11 @@ int
fdinit(int fstype, char *name)
{
static const fs_operation_def_t fd_vfsops_template[] = {
- VFSNAME_MOUNT, fdmount,
- VFSNAME_UNMOUNT, fdunmount,
- VFSNAME_ROOT, fdroot,
- VFSNAME_STATVFS, fdstatvfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = fdmount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = fdunmount },
+ VFSNAME_ROOT, { .vfs_root = fdroot },
+ VFSNAME_STATVFS, { .vfs_statvfs = fdstatvfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/fem.c b/usr/src/uts/common/fs/fem.c
index 25de365723..93cae4d737 100644
--- a/usr/src/uts/common/fs/fem.c
+++ b/usr/src/uts/common/fs/fem.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.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -38,7 +38,7 @@
#include <sys/fem.h>
#include <sys/vfs.h>
#include <sys/vnode.h>
-
+#include <sys/vfs_opreg.h>
#define NNODES_DEFAULT 8 /* Default number of nodes in a fem_list */
/*
@@ -77,7 +77,7 @@ int fsem_err();
#define _FEMOPDEF(name, member) \
- { VOPNAME_##name, offsetof(fem_t, vsop_##member), NULL, fem_err }
+ { VOPNAME_##name, offsetof(fem_t, femop_##member), NULL, fem_err }
static fs_operation_trans_def_t fem_opdef[] = {
_FEMOPDEF(OPEN, open),
@@ -181,7 +181,7 @@ static struct fs_operation_def fem_guard_ops[] = {
#define _FSEMOPDEF(name, member) \
- { VFSNAME_##name, offsetof(fsem_t, vfsop_##member), NULL, fsem_err }
+ { VFSNAME_##name, offsetof(fsem_t, fsemop_##member), NULL, fsem_err }
static fs_operation_trans_def_t fsem_opdef[] = {
_FSEMOPDEF(MOUNT, mount),
@@ -446,7 +446,7 @@ vhead_open(vnode_t **vpp, int mode, cred_t *cr)
fem_unlock((*vpp)->v_femhead);
farg.fa_vnode.vpp = vpp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_open, vsop_open);
+ vsop_find(&farg, &func, int, &arg0, vop_open, femop_open);
errc = (*func)(arg0, mode, cr);
fem_release(femsp);
}
@@ -472,7 +472,7 @@ vhead_close(vnode_t *vp, int flag, int count, offset_t offset, cred_t *cr)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_close, vsop_close);
+ vsop_find(&farg, &func, int, &arg0, vop_close, femop_close);
errc = (*func)(arg0, flag, count, offset, cr);
fem_release(femsp);
}
@@ -499,7 +499,7 @@ vhead_read(vnode_t *vp, uio_t *uiop, int ioflag, cred_t *cr,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_read, vsop_read);
+ vsop_find(&farg, &func, int, &arg0, vop_read, femop_read);
errc = (*func)(arg0, uiop, ioflag, cr, ct);
fem_release(femsp);
}
@@ -526,7 +526,7 @@ vhead_write(vnode_t *vp, uio_t *uiop, int ioflag, cred_t *cr,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_write, vsop_write);
+ vsop_find(&farg, &func, int, &arg0, vop_write, femop_write);
errc = (*func)(arg0, uiop, ioflag, cr, ct);
fem_release(femsp);
}
@@ -553,7 +553,7 @@ vhead_ioctl(vnode_t *vp, int cmd, intptr_t arg, int flag, cred_t *cr,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_ioctl, vsop_ioctl);
+ vsop_find(&farg, &func, int, &arg0, vop_ioctl, femop_ioctl);
errc = (*func)(arg0, cmd, arg, flag, cr, rvalp);
fem_release(femsp);
}
@@ -579,7 +579,7 @@ vhead_setfl(vnode_t *vp, int oflags, int nflags, cred_t *cr)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_setfl, vsop_setfl);
+ vsop_find(&farg, &func, int, &arg0, vop_setfl, femop_setfl);
errc = (*func)(arg0, oflags, nflags, cr);
fem_release(femsp);
}
@@ -606,7 +606,7 @@ vhead_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_getattr,
- vsop_getattr);
+ femop_getattr);
errc = (*func)(arg0, vap, flags, cr);
fem_release(femsp);
}
@@ -634,7 +634,7 @@ vhead_setattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_setattr,
- vsop_setattr);
+ femop_setattr);
errc = (*func)(arg0, vap, flags, cr, ct);
fem_release(femsp);
}
@@ -661,7 +661,7 @@ vhead_access(vnode_t *vp, int mode, int flags, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_access,
- vsop_access);
+ femop_access);
errc = (*func)(arg0, mode, flags, cr);
fem_release(femsp);
}
@@ -689,7 +689,7 @@ vhead_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp,
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_lookup,
- vsop_lookup);
+ femop_lookup);
errc = (*func)(arg0, nm, vpp, pnp, flags, rdir, cr);
fem_release(femsp);
}
@@ -717,7 +717,7 @@ vhead_create(vnode_t *dvp, char *name, vattr_t *vap, vcexcl_t excl,
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_create,
- vsop_create);
+ femop_create);
errc = (*func)(arg0, name, vap, excl, mode, vpp, cr, flag);
fem_release(femsp);
}
@@ -744,7 +744,7 @@ vhead_remove(vnode_t *dvp, char *nm, cred_t *cr)
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_remove,
- vsop_remove);
+ femop_remove);
errc = (*func)(arg0, nm, cr);
fem_release(femsp);
}
@@ -770,7 +770,7 @@ vhead_link(vnode_t *tdvp, vnode_t *svp, char *tnm, cred_t *cr)
fem_unlock(tdvp->v_femhead);
farg.fa_vnode.vp = tdvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_link, vsop_link);
+ vsop_find(&farg, &func, int, &arg0, vop_link, femop_link);
errc = (*func)(arg0, svp, tnm, cr);
fem_release(femsp);
}
@@ -798,7 +798,7 @@ vhead_rename(vnode_t *sdvp, char *snm, vnode_t *tdvp, char *tnm,
farg.fa_vnode.vp = sdvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_rename,
- vsop_rename);
+ femop_rename);
errc = (*func)(arg0, snm, tdvp, tnm, cr);
fem_release(femsp);
}
@@ -825,7 +825,7 @@ vhead_mkdir(vnode_t *dvp, char *dirname, vattr_t *vap, vnode_t **vpp,
fem_unlock(dvp->v_femhead);
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_mkdir, vsop_mkdir);
+ vsop_find(&farg, &func, int, &arg0, vop_mkdir, femop_mkdir);
errc = (*func)(arg0, dirname, vap, vpp, cr);
fem_release(femsp);
}
@@ -851,7 +851,7 @@ vhead_rmdir(vnode_t *dvp, char *nm, vnode_t *cdir, cred_t *cr)
fem_unlock(dvp->v_femhead);
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_rmdir, vsop_rmdir);
+ vsop_find(&farg, &func, int, &arg0, vop_rmdir, femop_rmdir);
errc = (*func)(arg0, nm, cdir, cr);
fem_release(femsp);
}
@@ -878,7 +878,7 @@ vhead_readdir(vnode_t *vp, uio_t *uiop, cred_t *cr, int *eofp)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_readdir,
- vsop_readdir);
+ femop_readdir);
errc = (*func)(arg0, uiop, cr, eofp);
fem_release(femsp);
}
@@ -906,7 +906,7 @@ vhead_symlink(vnode_t *dvp, char *linkname, vattr_t *vap, char *target,
farg.fa_vnode.vp = dvp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_symlink,
- vsop_symlink);
+ femop_symlink);
errc = (*func)(arg0, linkname, vap, target, cr);
fem_release(femsp);
}
@@ -933,7 +933,7 @@ vhead_readlink(vnode_t *vp, uio_t *uiop, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_readlink,
- vsop_readlink);
+ femop_readlink);
errc = (*func)(arg0, uiop, cr);
fem_release(femsp);
}
@@ -959,7 +959,7 @@ vhead_fsync(vnode_t *vp, int syncflag, cred_t *cr)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_fsync, vsop_fsync);
+ vsop_find(&farg, &func, int, &arg0, vop_fsync, femop_fsync);
errc = (*func)(arg0, syncflag, cr);
fem_release(femsp);
}
@@ -985,7 +985,7 @@ vhead_inactive(vnode_t *vp, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, void, &arg0, vop_inactive,
- vsop_inactive);
+ femop_inactive);
(*func)(arg0, cr);
fem_release(femsp);
}
@@ -1010,7 +1010,7 @@ vhead_fid(vnode_t *vp, fid_t *fidp)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_fid, vsop_fid);
+ vsop_find(&farg, &func, int, &arg0, vop_fid, femop_fid);
errc = (*func)(arg0, fidp);
fem_release(femsp);
}
@@ -1037,7 +1037,7 @@ vhead_rwlock(vnode_t *vp, int write_lock, caller_context_t *ct)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_rwlock,
- vsop_rwlock);
+ femop_rwlock);
errc = (*func)(arg0, write_lock, ct);
fem_release(femsp);
}
@@ -1063,7 +1063,7 @@ vhead_rwunlock(vnode_t *vp, int write_lock, caller_context_t *ct)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, void, &arg0, vop_rwunlock,
- vsop_rwunlock);
+ femop_rwunlock);
(*func)(arg0, write_lock, ct);
fem_release(femsp);
}
@@ -1088,7 +1088,7 @@ vhead_seek(vnode_t *vp, offset_t ooff, offset_t *noffp)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_seek, vsop_seek);
+ vsop_find(&farg, &func, int, &arg0, vop_seek, femop_seek);
errc = (*func)(arg0, ooff, noffp);
fem_release(femsp);
}
@@ -1114,7 +1114,7 @@ vhead_cmp(vnode_t *vp1, vnode_t *vp2)
fem_unlock(vp1->v_femhead);
farg.fa_vnode.vp = vp1;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_cmp, vsop_cmp);
+ vsop_find(&farg, &func, int, &arg0, vop_cmp, femop_cmp);
errc = (*func)(arg0, vp2);
fem_release(femsp);
}
@@ -1142,7 +1142,7 @@ vhead_frlock(vnode_t *vp, int cmd, struct flock64 *bfp, int flag,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_frlock,
- vsop_frlock);
+ femop_frlock);
errc = (*func)(arg0, cmd, bfp, flag, offset, flk_cbp, cr);
fem_release(femsp);
}
@@ -1169,7 +1169,7 @@ vhead_space(vnode_t *vp, int cmd, struct flock64 *bfp, int flag,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_space, vsop_space);
+ vsop_find(&farg, &func, int, &arg0, vop_space, femop_space);
errc = (*func)(arg0, cmd, bfp, flag, offset, cr, ct);
fem_release(femsp);
}
@@ -1196,7 +1196,7 @@ vhead_realvp(vnode_t *vp, vnode_t **vpp)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_realvp,
- vsop_realvp);
+ femop_realvp);
errc = (*func)(arg0, vpp);
fem_release(femsp);
}
@@ -1226,7 +1226,7 @@ vhead_getpage(vnode_t *vp, offset_t off, size_t len, uint_t *protp,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_getpage,
- vsop_getpage);
+ femop_getpage);
errc = (*func)(arg0, off, len, protp, plarr, plsz, seg,
addr, rw, cr);
fem_release(femsp);
@@ -1254,7 +1254,7 @@ vhead_putpage(vnode_t *vp, offset_t off, size_t len, int flags, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_putpage,
- vsop_putpage);
+ femop_putpage);
errc = (*func)(arg0, off, len, flags, cr);
fem_release(femsp);
}
@@ -1283,7 +1283,7 @@ vhead_map(vnode_t *vp, offset_t off, struct as *as, caddr_t *addrp,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_map, vsop_map);
+ vsop_find(&farg, &func, int, &arg0, vop_map, femop_map);
errc = (*func)(arg0, off, as, addrp, len, prot, maxprot,
flags, cr);
fem_release(femsp);
@@ -1314,7 +1314,7 @@ vhead_addmap(vnode_t *vp, offset_t off, struct as *as, caddr_t addr,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_addmap,
- vsop_addmap);
+ femop_addmap);
errc = (*func)(arg0, off, as, addr, len, prot, maxprot,
flags, cr);
fem_release(femsp);
@@ -1344,7 +1344,7 @@ vhead_delmap(vnode_t *vp, offset_t off, struct as *as, caddr_t addr,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_delmap,
- vsop_delmap);
+ femop_delmap);
errc = (*func)(arg0, off, as, addr, len, prot, maxprot,
flags, cr);
fem_release(femsp);
@@ -1372,7 +1372,7 @@ vhead_poll(vnode_t *vp, short events, int anyyet, short *reventsp,
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_poll, vsop_poll);
+ vsop_find(&farg, &func, int, &arg0, vop_poll, femop_poll);
errc = (*func)(arg0, events, anyyet, reventsp, phpp);
fem_release(femsp);
}
@@ -1398,7 +1398,7 @@ vhead_dump(vnode_t *vp, caddr_t addr, int lbdn, int dblks)
fem_unlock(vp->v_femhead);
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vsop_find(&farg, &func, int, &arg0, vop_dump, vsop_dump);
+ vsop_find(&farg, &func, int, &arg0, vop_dump, femop_dump);
errc = (*func)(arg0, addr, lbdn, dblks);
fem_release(femsp);
}
@@ -1425,7 +1425,7 @@ vhead_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_pathconf,
- vsop_pathconf);
+ femop_pathconf);
errc = (*func)(arg0, cmd, valp, cr);
fem_release(femsp);
}
@@ -1453,7 +1453,7 @@ vhead_pageio(vnode_t *vp, struct page *pp, u_offset_t io_off,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_pageio,
- vsop_pageio);
+ femop_pageio);
errc = (*func)(arg0, pp, io_off, io_len, flags, cr);
fem_release(femsp);
}
@@ -1480,7 +1480,7 @@ vhead_dumpctl(vnode_t *vp, int action, int *blkp)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_dumpctl,
- vsop_dumpctl);
+ femop_dumpctl);
errc = (*func)(arg0, action, blkp);
fem_release(femsp);
}
@@ -1506,7 +1506,7 @@ vhead_dispose(vnode_t *vp, struct page *pp, int flag, int dn, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, void, &arg0, vop_dispose,
- vsop_dispose);
+ femop_dispose);
(*func)(arg0, pp, flag, dn, cr);
fem_release(femsp);
}
@@ -1532,7 +1532,7 @@ vhead_setsecattr(vnode_t *vp, vsecattr_t *vsap, int flag, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_setsecattr,
- vsop_setsecattr);
+ femop_setsecattr);
errc = (*func)(arg0, vsap, flag, cr);
fem_release(femsp);
}
@@ -1559,7 +1559,7 @@ vhead_getsecattr(vnode_t *vp, vsecattr_t *vsap, int flag, cred_t *cr)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_getsecattr,
- vsop_getsecattr);
+ femop_getsecattr);
errc = (*func)(arg0, vsap, flag, cr);
fem_release(femsp);
}
@@ -1587,7 +1587,7 @@ vhead_shrlock(vnode_t *vp, int cmd, struct shrlock *shr, int flag,
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_shrlock,
- vsop_shrlock);
+ femop_shrlock);
errc = (*func)(arg0, cmd, shr, flag, cr);
fem_release(femsp);
}
@@ -1614,7 +1614,7 @@ vhead_vnevent(vnode_t *vp, vnevent_t vnevent)
farg.fa_vnode.vp = vp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vsop_find(&farg, &func, int, &arg0, vop_vnevent,
- vsop_vnevent);
+ femop_vnevent);
errc = (*func)(arg0, vnevent);
fem_release(femsp);
}
@@ -1642,7 +1642,7 @@ fshead_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *cr)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, int, &arg0, vfs_mount,
- vfsop_mount);
+ fsemop_mount);
errc = (*func)(arg0, mvp, uap, cr);
fem_release(femsp);
}
@@ -1670,7 +1670,7 @@ fshead_unmount(vfs_t *vfsp, int flag, cred_t *cr)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, int, &arg0, vfs_unmount,
- vfsop_unmount);
+ fsemop_unmount);
errc = (*func)(arg0, flag, cr);
fem_release(femsp);
}
@@ -1697,7 +1697,7 @@ fshead_root(vfs_t *vfsp, vnode_t **vpp)
fem_unlock(vfsp->vfs_femhead);
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vfsop_find(&farg, &func, int, &arg0, vfs_root, vfsop_root);
+ vfsop_find(&farg, &func, int, &arg0, vfs_root, fsemop_root);
errc = (*func)(arg0, vpp);
fem_release(femsp);
}
@@ -1725,7 +1725,7 @@ fshead_statvfs(vfs_t *vfsp, statvfs64_t *sp)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, int, &arg0, vfs_statvfs,
- vfsop_statvfs);
+ fsemop_statvfs);
errc = (*func)(arg0, sp);
fem_release(femsp);
}
@@ -1752,7 +1752,7 @@ fshead_sync(vfs_t *vfsp, short flag, cred_t *cr)
fem_unlock(vfsp->vfs_femhead);
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vfsop_find(&farg, &func, int, &arg0, vfs_sync, vfsop_sync);
+ vfsop_find(&farg, &func, int, &arg0, vfs_sync, fsemop_sync);
errc = (*func)(arg0, flag, cr);
fem_release(femsp);
}
@@ -1779,7 +1779,7 @@ fshead_vget(vfs_t *vfsp, vnode_t **vpp, fid_t *fidp)
fem_unlock(vfsp->vfs_femhead);
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
- vfsop_find(&farg, &func, int, &arg0, vfs_vget, vfsop_vget);
+ vfsop_find(&farg, &func, int, &arg0, vfs_vget, fsemop_vget);
errc = (*func)(arg0, vpp, fidp);
fem_release(femsp);
}
@@ -1807,7 +1807,7 @@ fshead_mountroot(vfs_t *vfsp, enum whymountroot reason)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, int, &arg0, vfs_mountroot,
- vfsop_mountroot);
+ fsemop_mountroot);
errc = (*func)(arg0, reason);
fem_release(femsp);
}
@@ -1834,7 +1834,7 @@ fshead_freevfs(vfs_t *vfsp)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, void, &arg0, vfs_freevfs,
- vfsop_freevfs);
+ fsemop_freevfs);
(*func)(arg0);
fem_release(femsp);
}
@@ -1861,7 +1861,7 @@ fshead_vnstate(vfs_t *vfsp, vnode_t *vp, vntrans_t nstate)
farg.fa_vnode.vfsp = vfsp;
farg.fa_fnode = femsp->feml_nodes + femsp->feml_tos;
vfsop_find(&farg, &func, int, &arg0, vfs_vnstate,
- vfsop_vnstate);
+ fsemop_vnstate);
errc = (*func)(arg0, vp, nstate);
fem_release(femsp);
}
@@ -1965,7 +1965,7 @@ vnext_open(femarg_t *vf, int mode, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_open, vsop_open);
+ vsop_find(vf, &func, int, &arg0, vop_open, femop_open);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, mode, cr));
@@ -1979,7 +1979,7 @@ vnext_close(femarg_t *vf, int flag, int count, offset_t offset, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_close, vsop_close);
+ vsop_find(vf, &func, int, &arg0, vop_close, femop_close);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, flag, count, offset, cr));
@@ -1994,7 +1994,7 @@ vnext_read(femarg_t *vf, uio_t *uiop, int ioflag, cred_t *cr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_read, vsop_read);
+ vsop_find(vf, &func, int, &arg0, vop_read, femop_read);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, uiop, ioflag, cr, ct));
@@ -2009,7 +2009,7 @@ vnext_write(femarg_t *vf, uio_t *uiop, int ioflag, cred_t *cr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_write, vsop_write);
+ vsop_find(vf, &func, int, &arg0, vop_write, femop_write);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, uiop, ioflag, cr, ct));
@@ -2024,7 +2024,7 @@ vnext_ioctl(femarg_t *vf, int cmd, intptr_t arg, int flag, cred_t *cr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_ioctl, vsop_ioctl);
+ vsop_find(vf, &func, int, &arg0, vop_ioctl, femop_ioctl);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, cmd, arg, flag, cr, rvalp));
@@ -2038,7 +2038,7 @@ vnext_setfl(femarg_t *vf, int oflags, int nflags, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_setfl, vsop_setfl);
+ vsop_find(vf, &func, int, &arg0, vop_setfl, femop_setfl);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, oflags, nflags, cr));
@@ -2052,7 +2052,7 @@ vnext_getattr(femarg_t *vf, vattr_t *vap, int flags, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_getattr, vsop_getattr);
+ vsop_find(vf, &func, int, &arg0, vop_getattr, femop_getattr);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vap, flags, cr));
@@ -2067,7 +2067,7 @@ vnext_setattr(femarg_t *vf, vattr_t *vap, int flags, cred_t *cr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_setattr, vsop_setattr);
+ vsop_find(vf, &func, int, &arg0, vop_setattr, femop_setattr);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vap, flags, cr, ct));
@@ -2081,7 +2081,7 @@ vnext_access(femarg_t *vf, int mode, int flags, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_access, vsop_access);
+ vsop_find(vf, &func, int, &arg0, vop_access, femop_access);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, mode, flags, cr));
@@ -2096,7 +2096,7 @@ vnext_lookup(femarg_t *vf, char *nm, vnode_t **vpp, pathname_t *pnp,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_lookup, vsop_lookup);
+ vsop_find(vf, &func, int, &arg0, vop_lookup, femop_lookup);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, nm, vpp, pnp, flags, rdir, cr));
@@ -2111,7 +2111,7 @@ vnext_create(femarg_t *vf, char *name, vattr_t *vap, vcexcl_t excl,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_create, vsop_create);
+ vsop_find(vf, &func, int, &arg0, vop_create, femop_create);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, name, vap, excl, mode, vpp, cr, flag));
@@ -2125,7 +2125,7 @@ vnext_remove(femarg_t *vf, char *nm, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_remove, vsop_remove);
+ vsop_find(vf, &func, int, &arg0, vop_remove, femop_remove);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, nm, cr));
@@ -2139,7 +2139,7 @@ vnext_link(femarg_t *vf, vnode_t *svp, char *tnm, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_link, vsop_link);
+ vsop_find(vf, &func, int, &arg0, vop_link, femop_link);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, svp, tnm, cr));
@@ -2153,7 +2153,7 @@ vnext_rename(femarg_t *vf, char *snm, vnode_t *tdvp, char *tnm, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_rename, vsop_rename);
+ vsop_find(vf, &func, int, &arg0, vop_rename, femop_rename);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, snm, tdvp, tnm, cr));
@@ -2168,7 +2168,7 @@ vnext_mkdir(femarg_t *vf, char *dirname, vattr_t *vap, vnode_t **vpp,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_mkdir, vsop_mkdir);
+ vsop_find(vf, &func, int, &arg0, vop_mkdir, femop_mkdir);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, dirname, vap, vpp, cr));
@@ -2182,7 +2182,7 @@ vnext_rmdir(femarg_t *vf, char *nm, vnode_t *cdir, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_rmdir, vsop_rmdir);
+ vsop_find(vf, &func, int, &arg0, vop_rmdir, femop_rmdir);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, nm, cdir, cr));
@@ -2196,7 +2196,7 @@ vnext_readdir(femarg_t *vf, uio_t *uiop, cred_t *cr, int *eofp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_readdir, vsop_readdir);
+ vsop_find(vf, &func, int, &arg0, vop_readdir, femop_readdir);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, uiop, cr, eofp));
@@ -2211,7 +2211,7 @@ vnext_symlink(femarg_t *vf, char *linkname, vattr_t *vap, char *target,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_symlink, vsop_symlink);
+ vsop_find(vf, &func, int, &arg0, vop_symlink, femop_symlink);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, linkname, vap, target, cr));
@@ -2225,7 +2225,7 @@ vnext_readlink(femarg_t *vf, uio_t *uiop, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_readlink, vsop_readlink);
+ vsop_find(vf, &func, int, &arg0, vop_readlink, femop_readlink);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, uiop, cr));
@@ -2239,7 +2239,7 @@ vnext_fsync(femarg_t *vf, int syncflag, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_fsync, vsop_fsync);
+ vsop_find(vf, &func, int, &arg0, vop_fsync, femop_fsync);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, syncflag, cr));
@@ -2253,7 +2253,7 @@ vnext_inactive(femarg_t *vf, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, void, &arg0, vop_inactive, vsop_inactive);
+ vsop_find(vf, &func, void, &arg0, vop_inactive, femop_inactive);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
(*func)(arg0, cr);
@@ -2267,7 +2267,7 @@ vnext_fid(femarg_t *vf, fid_t *fidp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_fid, vsop_fid);
+ vsop_find(vf, &func, int, &arg0, vop_fid, femop_fid);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, fidp));
@@ -2281,7 +2281,7 @@ vnext_rwlock(femarg_t *vf, int write_lock, caller_context_t *ct)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_rwlock, vsop_rwlock);
+ vsop_find(vf, &func, int, &arg0, vop_rwlock, femop_rwlock);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, write_lock, ct));
@@ -2295,7 +2295,7 @@ vnext_rwunlock(femarg_t *vf, int write_lock, caller_context_t *ct)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, void, &arg0, vop_rwunlock, vsop_rwunlock);
+ vsop_find(vf, &func, void, &arg0, vop_rwunlock, femop_rwunlock);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
(*func)(arg0, write_lock, ct);
@@ -2309,7 +2309,7 @@ vnext_seek(femarg_t *vf, offset_t ooff, offset_t *noffp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_seek, vsop_seek);
+ vsop_find(vf, &func, int, &arg0, vop_seek, femop_seek);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, ooff, noffp));
@@ -2323,7 +2323,7 @@ vnext_cmp(femarg_t *vf, vnode_t *vp2)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_cmp, vsop_cmp);
+ vsop_find(vf, &func, int, &arg0, vop_cmp, femop_cmp);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vp2));
@@ -2338,7 +2338,7 @@ vnext_frlock(femarg_t *vf, int cmd, struct flock64 *bfp, int flag,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_frlock, vsop_frlock);
+ vsop_find(vf, &func, int, &arg0, vop_frlock, femop_frlock);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, cmd, bfp, flag, offset, flk_cbp, cr));
@@ -2353,7 +2353,7 @@ vnext_space(femarg_t *vf, int cmd, struct flock64 *bfp, int flag,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_space, vsop_space);
+ vsop_find(vf, &func, int, &arg0, vop_space, femop_space);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, cmd, bfp, flag, offset, cr, ct));
@@ -2367,7 +2367,7 @@ vnext_realvp(femarg_t *vf, vnode_t **vpp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_realvp, vsop_realvp);
+ vsop_find(vf, &func, int, &arg0, vop_realvp, femop_realvp);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vpp));
@@ -2383,7 +2383,7 @@ vnext_getpage(femarg_t *vf, offset_t off, size_t len, uint_t *protp,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_getpage, vsop_getpage);
+ vsop_find(vf, &func, int, &arg0, vop_getpage, femop_getpage);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, off, len, protp, plarr, plsz, seg, addr, rw,
@@ -2399,7 +2399,7 @@ vnext_putpage(femarg_t *vf, offset_t off, size_t len, int flags,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_putpage, vsop_putpage);
+ vsop_find(vf, &func, int, &arg0, vop_putpage, femop_putpage);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, off, len, flags, cr));
@@ -2415,7 +2415,7 @@ vnext_map(femarg_t *vf, offset_t off, struct as *as, caddr_t *addrp,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_map, vsop_map);
+ vsop_find(vf, &func, int, &arg0, vop_map, femop_map);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, off, as, addrp, len, prot, maxprot, flags,
@@ -2432,7 +2432,7 @@ vnext_addmap(femarg_t *vf, offset_t off, struct as *as, caddr_t addr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_addmap, vsop_addmap);
+ vsop_find(vf, &func, int, &arg0, vop_addmap, femop_addmap);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, off, as, addr, len, prot, maxprot, flags, cr));
@@ -2447,7 +2447,7 @@ vnext_delmap(femarg_t *vf, offset_t off, struct as *as, caddr_t addr,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_delmap, vsop_delmap);
+ vsop_find(vf, &func, int, &arg0, vop_delmap, femop_delmap);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, off, as, addr, len, prot, maxprot, flags, cr));
@@ -2462,7 +2462,7 @@ vnext_poll(femarg_t *vf, short events, int anyyet, short *reventsp,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_poll, vsop_poll);
+ vsop_find(vf, &func, int, &arg0, vop_poll, femop_poll);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, events, anyyet, reventsp, phpp));
@@ -2476,7 +2476,7 @@ vnext_dump(femarg_t *vf, caddr_t addr, int lbdn, int dblks)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_dump, vsop_dump);
+ vsop_find(vf, &func, int, &arg0, vop_dump, femop_dump);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, addr, lbdn, dblks));
@@ -2490,7 +2490,7 @@ vnext_pathconf(femarg_t *vf, int cmd, ulong_t *valp, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_pathconf, vsop_pathconf);
+ vsop_find(vf, &func, int, &arg0, vop_pathconf, femop_pathconf);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, cmd, valp, cr));
@@ -2505,7 +2505,7 @@ vnext_pageio(femarg_t *vf, struct page *pp, u_offset_t io_off,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_pageio, vsop_pageio);
+ vsop_find(vf, &func, int, &arg0, vop_pageio, femop_pageio);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, pp, io_off, io_len, flags, cr));
@@ -2519,7 +2519,7 @@ vnext_dumpctl(femarg_t *vf, int action, int *blkp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_dumpctl, vsop_dumpctl);
+ vsop_find(vf, &func, int, &arg0, vop_dumpctl, femop_dumpctl);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, action, blkp));
@@ -2533,7 +2533,7 @@ vnext_dispose(femarg_t *vf, struct page *pp, int flag, int dn, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, void, &arg0, vop_dispose, vsop_dispose);
+ vsop_find(vf, &func, void, &arg0, vop_dispose, femop_dispose);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
(*func)(arg0, pp, flag, dn, cr);
@@ -2547,7 +2547,7 @@ vnext_setsecattr(femarg_t *vf, vsecattr_t *vsap, int flag, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_setsecattr, vsop_setsecattr);
+ vsop_find(vf, &func, int, &arg0, vop_setsecattr, femop_setsecattr);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vsap, flag, cr));
@@ -2561,7 +2561,7 @@ vnext_getsecattr(femarg_t *vf, vsecattr_t *vsap, int flag, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_getsecattr, vsop_getsecattr);
+ vsop_find(vf, &func, int, &arg0, vop_getsecattr, femop_getsecattr);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vsap, flag, cr));
@@ -2576,7 +2576,7 @@ vnext_shrlock(femarg_t *vf, int cmd, struct shrlock *shr, int flag,
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_shrlock, vsop_shrlock);
+ vsop_find(vf, &func, int, &arg0, vop_shrlock, femop_shrlock);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, cmd, shr, flag, cr));
@@ -2590,7 +2590,7 @@ vnext_vnevent(femarg_t *vf, vnevent_t vnevent)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vsop_find(vf, &func, int, &arg0, vop_vnevent, vsop_vnevent);
+ vsop_find(vf, &func, int, &arg0, vop_vnevent, femop_vnevent);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vnevent));
@@ -2604,7 +2604,7 @@ vfsnext_mount(fsemarg_t *vf, vnode_t *mvp, struct mounta *uap, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_mount, vfsop_mount);
+ vfsop_find(vf, &func, int, &arg0, vfs_mount, fsemop_mount);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, mvp, uap, cr));
@@ -2618,7 +2618,7 @@ vfsnext_unmount(fsemarg_t *vf, int flag, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_unmount, vfsop_unmount);
+ vfsop_find(vf, &func, int, &arg0, vfs_unmount, fsemop_unmount);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, flag, cr));
@@ -2632,7 +2632,7 @@ vfsnext_root(fsemarg_t *vf, vnode_t **vpp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_root, vfsop_root);
+ vfsop_find(vf, &func, int, &arg0, vfs_root, fsemop_root);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vpp));
@@ -2646,7 +2646,7 @@ vfsnext_statvfs(fsemarg_t *vf, statvfs64_t *sp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_statvfs, vfsop_statvfs);
+ vfsop_find(vf, &func, int, &arg0, vfs_statvfs, fsemop_statvfs);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, sp));
@@ -2660,7 +2660,7 @@ vfsnext_sync(fsemarg_t *vf, short flag, cred_t *cr)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_sync, vfsop_sync);
+ vfsop_find(vf, &func, int, &arg0, vfs_sync, fsemop_sync);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, flag, cr));
@@ -2674,7 +2674,7 @@ vfsnext_vget(fsemarg_t *vf, vnode_t **vpp, fid_t *fidp)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_vget, vfsop_vget);
+ vfsop_find(vf, &func, int, &arg0, vfs_vget, fsemop_vget);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vpp, fidp));
@@ -2688,7 +2688,7 @@ vfsnext_mountroot(fsemarg_t *vf, enum whymountroot reason)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_mountroot, vfsop_mountroot);
+ vfsop_find(vf, &func, int, &arg0, vfs_mountroot, fsemop_mountroot);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, reason));
@@ -2702,7 +2702,7 @@ vfsnext_freevfs(fsemarg_t *vf)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, void, &arg0, vfs_freevfs, vfsop_freevfs);
+ vfsop_find(vf, &func, void, &arg0, vfs_freevfs, fsemop_freevfs);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
(*func)(arg0);
@@ -2716,7 +2716,7 @@ vfsnext_vnstate(fsemarg_t *vf, vnode_t *vp, vntrans_t nstate)
ASSERT(vf != NULL);
vf->fa_fnode--;
- vfsop_find(vf, &func, int, &arg0, vfs_vnstate, vfsop_vnstate);
+ vfsop_find(vf, &func, int, &arg0, vfs_vnstate, fsemop_vnstate);
ASSERT(func != NULL);
ASSERT(arg0 != NULL);
return ((*func)(arg0, vp, nstate));
diff --git a/usr/src/uts/common/fs/fifofs/fifosubr.c b/usr/src/uts/common/fs/fifofs/fifosubr.c
index 8767999322..6b2ca9683f 100644
--- a/usr/src/uts/common/fs/fifofs/fifosubr.c
+++ b/usr/src/uts/common/fs/fifofs/fifosubr.c
@@ -21,7 +21,7 @@
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -45,6 +45,7 @@
#include <sys/sysmacros.h>
#include <sys/var.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/mode.h>
#include <sys/signal.h>
diff --git a/usr/src/uts/common/fs/fifofs/fifovnops.c b/usr/src/uts/common/fs/fifofs/fifovnops.c
index 34f731af1e..afa01bb3ab 100644
--- a/usr/src/uts/common/fs/fifofs/fifovnops.c
+++ b/usr/src/uts/common/fs/fifofs/fifovnops.c
@@ -23,7 +23,7 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -46,6 +46,7 @@
#include <sys/uio.h>
#include <sys/vfs.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/pathname.h>
#include <sys/signal.h>
#include <sys/user.h>
@@ -110,28 +111,28 @@ struct streamtab fifoinfo = { &fifo_strdata, &fifo_stwdata, NULL, NULL };
struct vnodeops *fifo_vnodeops;
const fs_operation_def_t fifo_vnodeops_template[] = {
- VOPNAME_OPEN, fifo_open,
- VOPNAME_CLOSE, fifo_close,
- VOPNAME_READ, fifo_read,
- VOPNAME_WRITE, fifo_write,
- VOPNAME_IOCTL, fifo_ioctl,
- VOPNAME_GETATTR, fifo_getattr,
- VOPNAME_SETATTR, fifo_setattr,
- VOPNAME_ACCESS, fifo_access,
- VOPNAME_CREATE, fifo_create,
- VOPNAME_FSYNC, fifo_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) fifo_inactive,
- VOPNAME_FID, fifo_fid,
- VOPNAME_RWLOCK, fifo_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) fifo_rwunlock,
- VOPNAME_SEEK, fifo_seek,
- VOPNAME_REALVP, fifo_realvp,
- VOPNAME_POLL, (fs_generic_func_p) fifo_poll,
- VOPNAME_PATHCONF, fifo_pathconf,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_SETSECATTR, fifo_setsecattr,
- VOPNAME_GETSECATTR, fifo_getsecattr,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = fifo_open },
+ VOPNAME_CLOSE, { .vop_close = fifo_close },
+ VOPNAME_READ, { .vop_read = fifo_read },
+ VOPNAME_WRITE, { .vop_write = fifo_write },
+ VOPNAME_IOCTL, { .vop_ioctl = fifo_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = fifo_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = fifo_setattr },
+ VOPNAME_ACCESS, { .vop_access = fifo_access },
+ VOPNAME_CREATE, { .vop_create = fifo_create },
+ VOPNAME_FSYNC, { .vop_fsync = fifo_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = fifo_inactive },
+ VOPNAME_FID, { .vop_fid = fifo_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = fifo_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = fifo_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = fifo_seek },
+ VOPNAME_REALVP, { .vop_realvp = fifo_realvp },
+ VOPNAME_POLL, { .vop_poll = fifo_poll },
+ VOPNAME_PATHCONF, { .vop_pathconf = fifo_pathconf },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = fifo_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = fifo_getsecattr },
+ NULL, NULL
};
/*
diff --git a/usr/src/uts/common/fs/hsfs/hsfs_vfsops.c b/usr/src/uts/common/fs/hsfs/hsfs_vfsops.c
index bd538c8f5e..327ab63eb5 100644
--- a/usr/src/uts/common/fs/hsfs/hsfs_vfsops.c
+++ b/usr/src/uts/common/fs/hsfs/hsfs_vfsops.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.
*/
@@ -43,6 +43,7 @@
#include <sys/buf.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/file.h>
#include <sys/uio.h>
@@ -234,13 +235,13 @@ static int
hsfsinit(int fstype, char *name)
{
static const fs_operation_def_t hsfs_vfsops_template[] = {
- VFSNAME_MOUNT, hsfs_mount,
- VFSNAME_UNMOUNT, hsfs_unmount,
- VFSNAME_ROOT, hsfs_root,
- VFSNAME_STATVFS, hsfs_statvfs,
- VFSNAME_VGET, hsfs_vget,
- VFSNAME_MOUNTROOT, hsfs_mountroot,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = hsfs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = hsfs_unmount },
+ VFSNAME_ROOT, { .vfs_root = hsfs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = hsfs_statvfs },
+ VFSNAME_VGET, { .vfs_vget = hsfs_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = hsfs_mountroot },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/hsfs/hsfs_vnops.c b/usr/src/uts/common/fs/hsfs/hsfs_vnops.c
index 9723f69639..7f48de25b8 100644
--- a/usr/src/uts/common/fs/hsfs/hsfs_vnops.c
+++ b/usr/src/uts/common/fs/hsfs/hsfs_vnops.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.
*/
@@ -41,6 +41,7 @@
#include <sys/user.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/stat.h>
#include <sys/vnode.h>
#include <sys/mode.h>
@@ -1331,26 +1332,26 @@ hsfs_pathconf(struct vnode *vp, int cmd, ulong_t *valp, struct cred *cr)
const fs_operation_def_t hsfs_vnodeops_template[] = {
- VOPNAME_OPEN, hsfs_open,
- VOPNAME_CLOSE, hsfs_close,
- VOPNAME_READ, hsfs_read,
- VOPNAME_GETATTR, hsfs_getattr,
- VOPNAME_ACCESS, hsfs_access,
- VOPNAME_LOOKUP, hsfs_lookup,
- VOPNAME_READDIR, hsfs_readdir,
- VOPNAME_READLINK, hsfs_readlink,
- VOPNAME_FSYNC, hsfs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) hsfs_inactive,
- VOPNAME_FID, hsfs_fid,
- VOPNAME_SEEK, hsfs_seek,
- VOPNAME_FRLOCK, hsfs_frlock,
- VOPNAME_GETPAGE, hsfs_getpage,
- VOPNAME_PUTPAGE, hsfs_putpage,
- VOPNAME_MAP, (fs_generic_func_p) hsfs_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) hsfs_addmap,
- VOPNAME_DELMAP, hsfs_delmap,
- VOPNAME_PATHCONF, hsfs_pathconf,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = hsfs_open },
+ VOPNAME_CLOSE, { .vop_close = hsfs_close },
+ VOPNAME_READ, { .vop_read = hsfs_read },
+ VOPNAME_GETATTR, { .vop_getattr = hsfs_getattr },
+ VOPNAME_ACCESS, { .vop_access = hsfs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = hsfs_lookup },
+ VOPNAME_READDIR, { .vop_readdir = hsfs_readdir },
+ VOPNAME_READLINK, { .vop_readlink = hsfs_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = hsfs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = hsfs_inactive },
+ VOPNAME_FID, { .vop_fid = hsfs_fid },
+ VOPNAME_SEEK, { .vop_seek = hsfs_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = hsfs_frlock },
+ VOPNAME_GETPAGE, { .vop_getpage = hsfs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = hsfs_putpage },
+ VOPNAME_MAP, { .vop_map = hsfs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = hsfs_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = hsfs_delmap },
+ VOPNAME_PATHCONF, { .vop_pathconf = hsfs_pathconf },
+ NULL, NULL
};
struct vnodeops *hsfs_vnodeops;
diff --git a/usr/src/uts/common/fs/lofs/lofs_vfsops.c b/usr/src/uts/common/fs/lofs/lofs_vfsops.c
index ea19eabe6e..8616e90cd6 100644
--- a/usr/src/uts/common/fs/lofs/lofs_vfsops.c
+++ b/usr/src/uts/common/fs/lofs/lofs_vfsops.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.
*/
@@ -28,6 +28,7 @@
#include <sys/param.h>
#include <sys/errno.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/uio.h>
#include <sys/pathname.h>
@@ -540,14 +541,14 @@ static int
lofsinit(int fstyp, char *name)
{
static const fs_operation_def_t lo_vfsops_template[] = {
- VFSNAME_MOUNT, lo_mount,
- VFSNAME_UNMOUNT, lo_unmount,
- VFSNAME_ROOT, lo_root,
- VFSNAME_STATVFS, lo_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) lo_sync,
- VFSNAME_VGET, lo_vget,
- VFSNAME_FREEVFS, (fs_generic_func_p) lo_freevfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = lo_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = lo_unmount },
+ VFSNAME_ROOT, { .vfs_root = lo_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = lo_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = lo_sync },
+ VFSNAME_VGET, { .vfs_vget = lo_vget },
+ VFSNAME_FREEVFS, { .vfs_freevfs = lo_freevfs },
+ NULL, NULL
};
int error;
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
};
diff --git a/usr/src/uts/common/fs/mntfs/mntvfsops.c b/usr/src/uts/common/fs/mntfs/mntvfsops.c
index f4d679fc9e..f148bb4af4 100644
--- a/usr/src/uts/common/fs/mntfs/mntvfsops.c
+++ b/usr/src/uts/common/fs/mntfs/mntvfsops.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.
*/
@@ -39,6 +39,7 @@
#include <sys/systm.h>
#include <sys/var.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/mode.h>
#include <sys/signal.h>
@@ -134,11 +135,11 @@ static int
mntinit(int fstype, char *name)
{
static const fs_operation_def_t mnt_vfsops_template[] = {
- VFSNAME_MOUNT, mntmount,
- VFSNAME_UNMOUNT, mntunmount,
- VFSNAME_ROOT, mntroot,
- VFSNAME_STATVFS, mntstatvfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = mntmount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = mntunmount },
+ VFSNAME_ROOT, { .vfs_root = mntroot },
+ VFSNAME_STATVFS, { .vfs_statvfs = mntstatvfs },
+ NULL, NULL
};
extern const fs_operation_def_t mnt_vnodeops_template[];
int error;
diff --git a/usr/src/uts/common/fs/mntfs/mntvnops.c b/usr/src/uts/common/fs/mntfs/mntvnops.c
index 450bc1b973..79f3a090b7 100644
--- a/usr/src/uts/common/fs/mntfs/mntvnops.c
+++ b/usr/src/uts/common/fs/mntfs/mntvnops.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -36,6 +35,7 @@
#include <sys/sysmacros.h>
#include <sys/systm.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/fs/mntdata.h>
#include <fs/fs_subr.h>
#include <sys/vmsystm.h>
@@ -1133,17 +1133,17 @@ mntioctl(struct vnode *vp, int cmd, intptr_t arg, int flag,
* /mntfs vnode operations vector
*/
const fs_operation_def_t mnt_vnodeops_template[] = {
- VOPNAME_OPEN, mntopen,
- VOPNAME_CLOSE, mntclose,
- VOPNAME_READ, mntread,
- VOPNAME_IOCTL, mntioctl,
- VOPNAME_GETATTR, mntgetattr,
- VOPNAME_ACCESS, mntaccess,
- VOPNAME_FSYNC, mntfsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) mntinactive,
- VOPNAME_SEEK, mntseek,
- VOPNAME_POLL, (fs_generic_func_p) mntpoll,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = mntopen },
+ VOPNAME_CLOSE, { .vop_close = mntclose },
+ VOPNAME_READ, { .vop_read = mntread },
+ VOPNAME_IOCTL, { .vop_ioctl = mntioctl },
+ VOPNAME_GETATTR, { .vop_getattr = mntgetattr },
+ VOPNAME_ACCESS, { .vop_access = mntaccess },
+ VOPNAME_FSYNC, { .vop_fsync = mntfsync },
+ VOPNAME_INACTIVE, { .vop_inactive = mntinactive },
+ VOPNAME_SEEK, { .vop_seek = mntseek },
+ VOPNAME_POLL, { .vop_poll = mntpoll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/namefs/namevfs.c b/usr/src/uts/common/fs/namefs/namevfs.c
index c54254070f..88bafaa135 100644
--- a/usr/src/uts/common/fs/namefs/namevfs.c
+++ b/usr/src/uts/common/fs/namefs/namevfs.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.
*/
@@ -48,6 +48,7 @@
#include <sys/sysmacros.h>
#include <sys/var.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/mode.h>
#include <sys/pcb.h>
@@ -662,17 +663,17 @@ int
nameinit(int fstype, char *name)
{
static const fs_operation_def_t nm_vfsops_template[] = {
- VFSNAME_MOUNT, nm_mount,
- VFSNAME_UNMOUNT, nm_unmount,
- VFSNAME_ROOT, nm_root,
- VFSNAME_STATVFS, nm_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) nm_sync,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = nm_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = nm_unmount },
+ VFSNAME_ROOT, { .vfs_root = nm_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = nm_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = nm_sync },
+ NULL, NULL
};
static const fs_operation_def_t nm_dummy_vfsops_template[] = {
- VFSNAME_STATVFS, nm_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) nm_sync,
- NULL, NULL
+ VFSNAME_STATVFS, { .vfs_statvfs = nm_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = nm_sync },
+ NULL, NULL
};
int error;
int dev;
diff --git a/usr/src/uts/common/fs/namefs/namevno.c b/usr/src/uts/common/fs/namefs/namevno.c
index bb53b1f7cf..ab4767e578 100644
--- a/usr/src/uts/common/fs/namefs/namevno.c
+++ b/usr/src/uts/common/fs/namefs/namevno.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -24,7 +23,7 @@
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -50,6 +49,7 @@
#include <sys/kmem.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pcb.h>
#include <sys/signal.h>
@@ -461,24 +461,24 @@ nm_poll(vnode_t *vp, short events, int anyyet, short *reventsp,
struct vnodeops *nm_vnodeops;
const fs_operation_def_t nm_vnodeops_template[] = {
- VOPNAME_OPEN, nm_open,
- VOPNAME_CLOSE, nm_close,
- VOPNAME_READ, nm_read,
- VOPNAME_WRITE, nm_write,
- VOPNAME_IOCTL, nm_ioctl,
- VOPNAME_GETATTR, nm_getattr,
- VOPNAME_SETATTR, nm_setattr,
- VOPNAME_ACCESS, nm_access,
- VOPNAME_CREATE, nm_create,
- VOPNAME_LINK, nm_link,
- VOPNAME_FSYNC, nm_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) nm_inactive,
- VOPNAME_FID, nm_fid,
- VOPNAME_RWLOCK, nm_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) nm_rwunlock,
- VOPNAME_SEEK, nm_seek,
- VOPNAME_REALVP, nm_realvp,
- VOPNAME_POLL, (fs_generic_func_p) nm_poll,
- VOPNAME_DISPOSE, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = nm_open },
+ VOPNAME_CLOSE, { .vop_close = nm_close },
+ VOPNAME_READ, { .vop_read = nm_read },
+ VOPNAME_WRITE, { .vop_write = nm_write },
+ VOPNAME_IOCTL, { .vop_ioctl = nm_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = nm_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = nm_setattr },
+ VOPNAME_ACCESS, { .vop_access = nm_access },
+ VOPNAME_CREATE, { .vop_create = nm_create },
+ VOPNAME_LINK, { .vop_link = nm_link },
+ VOPNAME_FSYNC, { .vop_fsync = nm_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = nm_inactive },
+ VOPNAME_FID, { .vop_fid = nm_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = nm_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = nm_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = nm_seek },
+ VOPNAME_REALVP, { .vop_realvp = nm_realvp },
+ VOPNAME_POLL, { .vop_poll = nm_poll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/nfs/nfs3_vfsops.c b/usr/src/uts/common/fs/nfs/nfs3_vfsops.c
index 4a3157ed0d..e02d3ab6bb 100644
--- a/usr/src/uts/common/fs/nfs/nfs3_vfsops.c
+++ b/usr/src/uts/common/fs/nfs/nfs3_vfsops.c
@@ -35,6 +35,7 @@
#include <sys/systm.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pathname.h>
#include <sys/sysmacros.h>
@@ -155,15 +156,15 @@ int
nfs3init(int fstyp, char *name)
{
static const fs_operation_def_t nfs3_vfsops_template[] = {
- VFSNAME_MOUNT, nfs3_mount,
- VFSNAME_UNMOUNT, nfs3_unmount,
- VFSNAME_ROOT, nfs3_root,
- VFSNAME_STATVFS, nfs3_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) nfs3_sync,
- VFSNAME_VGET, nfs3_vget,
- VFSNAME_MOUNTROOT, nfs3_mountroot,
- VFSNAME_FREEVFS, (fs_generic_func_p)nfs3_freevfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = nfs3_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = nfs3_unmount },
+ VFSNAME_ROOT, { .vfs_root = nfs3_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = nfs3_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = nfs3_sync },
+ VFSNAME_VGET, { .vfs_vget = nfs3_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = nfs3_mountroot },
+ VFSNAME_FREEVFS, { .vfs_freevfs = nfs3_freevfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/nfs/nfs3_vnops.c b/usr/src/uts/common/fs/nfs/nfs3_vnops.c
index 3b54de5ea7..7a9355b4a4 100644
--- a/usr/src/uts/common/fs/nfs/nfs3_vnops.c
+++ b/usr/src/uts/common/fs/nfs/nfs3_vnops.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.
*/
@@ -37,6 +37,7 @@
#include <sys/time.h>
#include <sys/vnode.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/filio.h>
#include <sys/uio.h>
@@ -216,46 +217,47 @@ static int nfs3_shrlock(vnode_t *, int, struct shrlock *, int, cred_t *);
struct vnodeops *nfs3_vnodeops;
const fs_operation_def_t nfs3_vnodeops_template[] = {
- VOPNAME_OPEN, nfs3_open,
- VOPNAME_CLOSE, nfs3_close,
- VOPNAME_READ, nfs3_read,
- VOPNAME_WRITE, nfs3_write,
- VOPNAME_IOCTL, nfs3_ioctl,
- VOPNAME_GETATTR, nfs3_getattr,
- VOPNAME_SETATTR, nfs3_setattr,
- VOPNAME_ACCESS, nfs3_access,
- VOPNAME_LOOKUP, nfs3_lookup,
- VOPNAME_CREATE, nfs3_create,
- VOPNAME_REMOVE, nfs3_remove,
- VOPNAME_LINK, nfs3_link,
- VOPNAME_RENAME, nfs3_rename,
- VOPNAME_MKDIR, nfs3_mkdir,
- VOPNAME_RMDIR, nfs3_rmdir,
- VOPNAME_READDIR, nfs3_readdir,
- VOPNAME_SYMLINK, nfs3_symlink,
- VOPNAME_READLINK, nfs3_readlink,
- VOPNAME_FSYNC, nfs3_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) nfs3_inactive,
- VOPNAME_FID, nfs3_fid,
- VOPNAME_RWLOCK, nfs3_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) nfs3_rwunlock,
- VOPNAME_SEEK, nfs3_seek,
- VOPNAME_FRLOCK, nfs3_frlock,
- VOPNAME_SPACE, nfs3_space,
- VOPNAME_REALVP, nfs3_realvp,
- VOPNAME_GETPAGE, nfs3_getpage,
- VOPNAME_PUTPAGE, nfs3_putpage,
- VOPNAME_MAP, (fs_generic_func_p) nfs3_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) nfs3_addmap,
- VOPNAME_DELMAP, nfs3_delmap,
- VOPNAME_DUMP, nfs_dump, /* there is no separate nfs3_dump */
- VOPNAME_PATHCONF, nfs3_pathconf,
- VOPNAME_PAGEIO, nfs3_pageio,
- VOPNAME_DISPOSE, (fs_generic_func_p) nfs3_dispose,
- VOPNAME_SETSECATTR, nfs3_setsecattr,
- VOPNAME_GETSECATTR, nfs3_getsecattr,
- VOPNAME_SHRLOCK, nfs3_shrlock,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = nfs3_open },
+ VOPNAME_CLOSE, { .vop_close = nfs3_close },
+ VOPNAME_READ, { .vop_read = nfs3_read },
+ VOPNAME_WRITE, { .vop_write = nfs3_write },
+ VOPNAME_IOCTL, { .vop_ioctl = nfs3_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = nfs3_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = nfs3_setattr },
+ VOPNAME_ACCESS, { .vop_access = nfs3_access },
+ VOPNAME_LOOKUP, { .vop_lookup = nfs3_lookup },
+ VOPNAME_CREATE, { .vop_create = nfs3_create },
+ VOPNAME_REMOVE, { .vop_remove = nfs3_remove },
+ VOPNAME_LINK, { .vop_link = nfs3_link },
+ VOPNAME_RENAME, { .vop_rename = nfs3_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = nfs3_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = nfs3_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = nfs3_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = nfs3_symlink },
+ VOPNAME_READLINK, { .vop_readlink = nfs3_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = nfs3_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = nfs3_inactive },
+ VOPNAME_FID, { .vop_fid = nfs3_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = nfs3_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = nfs3_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = nfs3_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = nfs3_frlock },
+ VOPNAME_SPACE, { .vop_space = nfs3_space },
+ VOPNAME_REALVP, { .vop_realvp = nfs3_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = nfs3_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = nfs3_putpage },
+ VOPNAME_MAP, { .vop_map = nfs3_map },
+ VOPNAME_ADDMAP, { .vop_addmap = nfs3_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = nfs3_delmap },
+ /* no separate nfs3_dump */
+ VOPNAME_DUMP, { .vop_dump = nfs_dump },
+ VOPNAME_PATHCONF, { .vop_pathconf = nfs3_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = nfs3_pageio },
+ VOPNAME_DISPOSE, { .vop_dispose = nfs3_dispose },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = nfs3_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = nfs3_getsecattr },
+ VOPNAME_SHRLOCK, { .vop_shrlock = nfs3_shrlock },
+ NULL, NULL
};
/*
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
diff --git a/usr/src/uts/common/fs/nfs/nfs4_vfsops.c b/usr/src/uts/common/fs/nfs/nfs4_vfsops.c
index 4bc1e88d5f..4f6719117f 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_vfsops.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_vfsops.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.
*/
@@ -35,6 +35,7 @@
#include <sys/systm.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pathname.h>
#include <sys/sysmacros.h>
@@ -175,15 +176,15 @@ int
nfs4init(int fstyp, char *name)
{
static const fs_operation_def_t nfs4_vfsops_template[] = {
- VFSNAME_MOUNT, nfs4_mount,
- VFSNAME_UNMOUNT, nfs4_unmount,
- VFSNAME_ROOT, nfs4_root,
- VFSNAME_STATVFS, nfs4_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) nfs4_sync,
- VFSNAME_VGET, nfs4_vget,
- VFSNAME_MOUNTROOT, nfs4_mountroot,
- VFSNAME_FREEVFS, (fs_generic_func_p)nfs4_freevfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = nfs4_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = nfs4_unmount },
+ VFSNAME_ROOT, { .vfs_root = nfs4_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = nfs4_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = nfs4_sync },
+ VFSNAME_VGET, { .vfs_vget = nfs4_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = nfs4_mountroot },
+ VFSNAME_FREEVFS, { .vfs_freevfs = nfs4_freevfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/nfs/nfs4_vnops.c b/usr/src/uts/common/fs/nfs/nfs4_vnops.c
index ba1155d523..36786c3514 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_vnops.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_vnops.c
@@ -37,6 +37,7 @@
#include <sys/time.h>
#include <sys/vnode.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/filio.h>
#include <sys/uio.h>
@@ -363,46 +364,47 @@ static int nfs4_pathconf_disable_cache = 0;
struct vnodeops *nfs4_vnodeops;
const fs_operation_def_t nfs4_vnodeops_template[] = {
- VOPNAME_OPEN, nfs4_open,
- VOPNAME_CLOSE, nfs4_close,
- VOPNAME_READ, nfs4_read,
- VOPNAME_WRITE, nfs4_write,
- VOPNAME_IOCTL, nfs4_ioctl,
- VOPNAME_GETATTR, nfs4_getattr,
- VOPNAME_SETATTR, nfs4_setattr,
- VOPNAME_ACCESS, nfs4_access,
- VOPNAME_LOOKUP, nfs4_lookup,
- VOPNAME_CREATE, nfs4_create,
- VOPNAME_REMOVE, nfs4_remove,
- VOPNAME_LINK, nfs4_link,
- VOPNAME_RENAME, nfs4_rename,
- VOPNAME_MKDIR, nfs4_mkdir,
- VOPNAME_RMDIR, nfs4_rmdir,
- VOPNAME_READDIR, nfs4_readdir,
- VOPNAME_SYMLINK, nfs4_symlink,
- VOPNAME_READLINK, nfs4_readlink,
- VOPNAME_FSYNC, nfs4_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) nfs4_inactive,
- VOPNAME_FID, nfs4_fid,
- VOPNAME_RWLOCK, nfs4_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) nfs4_rwunlock,
- VOPNAME_SEEK, nfs4_seek,
- VOPNAME_FRLOCK, nfs4_frlock,
- VOPNAME_SPACE, nfs4_space,
- VOPNAME_REALVP, nfs4_realvp,
- VOPNAME_GETPAGE, nfs4_getpage,
- VOPNAME_PUTPAGE, nfs4_putpage,
- VOPNAME_MAP, (fs_generic_func_p) nfs4_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) nfs4_addmap,
- VOPNAME_DELMAP, nfs4_delmap,
- VOPNAME_DUMP, nfs_dump, /* there is no separate nfs4_dump */
- VOPNAME_PATHCONF, nfs4_pathconf,
- VOPNAME_PAGEIO, nfs4_pageio,
- VOPNAME_DISPOSE, (fs_generic_func_p) nfs4_dispose,
- VOPNAME_SETSECATTR, nfs4_setsecattr,
- VOPNAME_GETSECATTR, nfs4_getsecattr,
- VOPNAME_SHRLOCK, nfs4_shrlock,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = nfs4_open },
+ VOPNAME_CLOSE, { .vop_close = nfs4_close },
+ VOPNAME_READ, { .vop_read = nfs4_read },
+ VOPNAME_WRITE, { .vop_write = nfs4_write },
+ VOPNAME_IOCTL, { .vop_ioctl = nfs4_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = nfs4_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = nfs4_setattr },
+ VOPNAME_ACCESS, { .vop_access = nfs4_access },
+ VOPNAME_LOOKUP, { .vop_lookup = nfs4_lookup },
+ VOPNAME_CREATE, { .vop_create = nfs4_create },
+ VOPNAME_REMOVE, { .vop_remove = nfs4_remove },
+ VOPNAME_LINK, { .vop_link = nfs4_link },
+ VOPNAME_RENAME, { .vop_rename = nfs4_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = nfs4_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = nfs4_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = nfs4_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = nfs4_symlink },
+ VOPNAME_READLINK, { .vop_readlink = nfs4_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = nfs4_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = nfs4_inactive },
+ VOPNAME_FID, { .vop_fid = nfs4_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = nfs4_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = nfs4_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = nfs4_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = nfs4_frlock },
+ VOPNAME_SPACE, { .vop_space = nfs4_space },
+ VOPNAME_REALVP, { .vop_realvp = nfs4_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = nfs4_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = nfs4_putpage },
+ VOPNAME_MAP, { .vop_map = nfs4_map },
+ VOPNAME_ADDMAP, { .vop_addmap = nfs4_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = nfs4_delmap },
+ /* no separate nfs4_dump */
+ VOPNAME_DUMP, { .vop_dump = nfs_dump },
+ VOPNAME_PATHCONF, { .vop_pathconf = nfs4_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = nfs4_pageio },
+ VOPNAME_DISPOSE, { .vop_dispose = nfs4_dispose },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = nfs4_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = nfs4_getsecattr },
+ VOPNAME_SHRLOCK, { .vop_shrlock = nfs4_shrlock },
+ NULL, NULL
};
/*
diff --git a/usr/src/uts/common/fs/nfs/nfs_common.c b/usr/src/uts/common/fs/nfs/nfs_common.c
index 3d3eecd82a..ded7c5075c 100644
--- a/usr/src/uts/common/fs/nfs/nfs_common.c
+++ b/usr/src/uts/common/fs/nfs/nfs_common.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.
*/
@@ -38,6 +38,7 @@
#include <sys/time.h>
#include <sys/utsname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pathname.h>
#include <sys/bootconf.h>
@@ -336,7 +337,7 @@ static int
nfsdyninit(int fstyp, char *name)
{
static const fs_operation_def_t nfsdyn_vfsops_template[] = {
- VFSNAME_MOUNTROOT, nfsdyn_mountroot,
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = nfsdyn_mountroot },
NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/nfs/nfs_vfsops.c b/usr/src/uts/common/fs/nfs/nfs_vfsops.c
index 5b16b20228..e6c3a4f7c4 100644
--- a/usr/src/uts/common/fs/nfs/nfs_vfsops.c
+++ b/usr/src/uts/common/fs/nfs/nfs_vfsops.c
@@ -33,6 +33,7 @@
#include <sys/systm.h>
#include <sys/cred.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/pathname.h>
#include <sys/sysmacros.h>
@@ -157,15 +158,15 @@ int
nfsinit(int fstyp, char *name)
{
static const fs_operation_def_t nfs_vfsops_template[] = {
- VFSNAME_MOUNT, nfs_mount,
- VFSNAME_UNMOUNT, nfs_unmount,
- VFSNAME_ROOT, nfs_root,
- VFSNAME_STATVFS, nfs_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) nfs_sync,
- VFSNAME_VGET, nfs_vget,
- VFSNAME_MOUNTROOT, nfs_mountroot,
- VFSNAME_FREEVFS, (fs_generic_func_p)nfs_freevfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = nfs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = nfs_unmount },
+ VFSNAME_ROOT, { .vfs_root = nfs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = nfs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = nfs_sync },
+ VFSNAME_VGET, { .vfs_vget = nfs_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = nfs_mountroot },
+ VFSNAME_FREEVFS, { .vfs_freevfs = nfs_freevfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/nfs/nfs_vnops.c b/usr/src/uts/common/fs/nfs/nfs_vnops.c
index 583ce42473..5e587027d7 100644
--- a/usr/src/uts/common/fs/nfs/nfs_vnops.c
+++ b/usr/src/uts/common/fs/nfs/nfs_vnops.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.
*
* Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T.
@@ -35,6 +35,7 @@
#include <sys/time.h>
#include <sys/vnode.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/file.h>
#include <sys/filio.h>
#include <sys/uio.h>
@@ -179,45 +180,45 @@ static int nfs_shrlock(vnode_t *, int, struct shrlock *, int, cred_t *);
struct vnodeops *nfs_vnodeops;
const fs_operation_def_t nfs_vnodeops_template[] = {
- VOPNAME_OPEN, nfs_open,
- VOPNAME_CLOSE, nfs_close,
- VOPNAME_READ, nfs_read,
- VOPNAME_WRITE, nfs_write,
- VOPNAME_IOCTL, nfs_ioctl,
- VOPNAME_GETATTR, nfs_getattr,
- VOPNAME_SETATTR, nfs_setattr,
- VOPNAME_ACCESS, nfs_access,
- VOPNAME_LOOKUP, nfs_lookup,
- VOPNAME_CREATE, nfs_create,
- VOPNAME_REMOVE, nfs_remove,
- VOPNAME_LINK, nfs_link,
- VOPNAME_RENAME, nfs_rename,
- VOPNAME_MKDIR, nfs_mkdir,
- VOPNAME_RMDIR, nfs_rmdir,
- VOPNAME_READDIR, nfs_readdir,
- VOPNAME_SYMLINK, nfs_symlink,
- VOPNAME_READLINK, nfs_readlink,
- VOPNAME_FSYNC, nfs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) nfs_inactive,
- VOPNAME_FID, nfs_fid,
- VOPNAME_RWLOCK, nfs_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) nfs_rwunlock,
- VOPNAME_SEEK, nfs_seek,
- VOPNAME_FRLOCK, nfs_frlock,
- VOPNAME_SPACE, nfs_space,
- VOPNAME_REALVP, nfs_realvp,
- VOPNAME_GETPAGE, nfs_getpage,
- VOPNAME_PUTPAGE, nfs_putpage,
- VOPNAME_MAP, (fs_generic_func_p) nfs_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) nfs_addmap,
- VOPNAME_DELMAP, nfs_delmap,
- VOPNAME_DUMP, nfs_dump,
- VOPNAME_PATHCONF, nfs_pathconf,
- VOPNAME_PAGEIO, nfs_pageio,
- VOPNAME_SETSECATTR, nfs_setsecattr,
- VOPNAME_GETSECATTR, nfs_getsecattr,
- VOPNAME_SHRLOCK, nfs_shrlock,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = nfs_open },
+ VOPNAME_CLOSE, { .vop_close = nfs_close },
+ VOPNAME_READ, { .vop_read = nfs_read },
+ VOPNAME_WRITE, { .vop_write = nfs_write },
+ VOPNAME_IOCTL, { .vop_ioctl = nfs_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = nfs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = nfs_setattr },
+ VOPNAME_ACCESS, { .vop_access = nfs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = nfs_lookup },
+ VOPNAME_CREATE, { .vop_create = nfs_create },
+ VOPNAME_REMOVE, { .vop_remove = nfs_remove },
+ VOPNAME_LINK, { .vop_link = nfs_link },
+ VOPNAME_RENAME, { .vop_rename = nfs_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = nfs_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = nfs_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = nfs_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = nfs_symlink },
+ VOPNAME_READLINK, { .vop_readlink = nfs_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = nfs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = nfs_inactive },
+ VOPNAME_FID, { .vop_fid = nfs_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = nfs_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = nfs_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = nfs_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = nfs_frlock },
+ VOPNAME_SPACE, { .vop_space = nfs_space },
+ VOPNAME_REALVP, { .vop_realvp = nfs_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = nfs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = nfs_putpage },
+ VOPNAME_MAP, { .vop_map = nfs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = nfs_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = nfs_delmap },
+ VOPNAME_DUMP, { .vop_dump = nfs_dump },
+ VOPNAME_PATHCONF, { .vop_pathconf = nfs_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = nfs_pageio },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = nfs_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = nfs_getsecattr },
+ VOPNAME_SHRLOCK, { .vop_shrlock = nfs_shrlock },
+ NULL, NULL
};
/*
diff --git a/usr/src/uts/common/fs/objfs/objfs_data.c b/usr/src/uts/common/fs/objfs/objfs_data.c
index 8f26850a47..4e050112fb 100644
--- a/usr/src/uts/common/fs/objfs/objfs_data.c
+++ b/usr/src/uts/common/fs/objfs/objfs_data.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -38,6 +37,7 @@
#include <sys/stat.h>
#include <sys/systm.h>
#include <sys/sysmacros.h>
+#include <sys/vfs_opreg.h>
/*
* /system/object/<obj>/object
@@ -751,14 +751,14 @@ objfs_data_seek(vnode_t *vp, offset_t off, offset_t *offp)
}
const fs_operation_def_t objfs_tops_data[] = {
- { VOPNAME_OPEN, objfs_data_open },
- { VOPNAME_CLOSE, objfs_common_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, objfs_data_getattr },
- { VOPNAME_ACCESS, objfs_data_access },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
- { VOPNAME_READ, objfs_data_read },
- { VOPNAME_SEEK, objfs_data_seek },
- { VOPNAME_MAP, (fs_generic_func_p) gfs_vop_map },
+ { VOPNAME_OPEN, { .vop_open = objfs_data_open } },
+ { VOPNAME_CLOSE, { .vop_close = objfs_common_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = objfs_data_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = objfs_data_access } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
+ { VOPNAME_READ, { .vop_read = objfs_data_read } },
+ { VOPNAME_SEEK, { .vop_seek = objfs_data_seek } },
+ { VOPNAME_MAP, { .vop_map = gfs_vop_map } },
{ NULL }
};
diff --git a/usr/src/uts/common/fs/objfs/objfs_odir.c b/usr/src/uts/common/fs/objfs/objfs_odir.c
index 500957933a..a7ef0ed502 100644
--- a/usr/src/uts/common/fs/objfs/objfs_odir.c
+++ b/usr/src/uts/common/fs/objfs/objfs_odir.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -32,6 +31,7 @@
#include <sys/modctl.h>
#include <sys/objfs.h>
#include <sys/objfs_impl.h>
+#include <sys/vfs_opreg.h>
#include <sys/stat.h>
static gfs_dirent_t objfs_odir_entries[] = {
@@ -78,14 +78,14 @@ objfs_odir_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr)
}
const fs_operation_def_t objfs_tops_odir[] = {
- { VOPNAME_OPEN, objfs_dir_open },
- { VOPNAME_CLOSE, objfs_common_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, objfs_odir_getattr },
- { VOPNAME_ACCESS, objfs_dir_access },
- { VOPNAME_READDIR, gfs_vop_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p) gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = objfs_dir_open } },
+ { VOPNAME_CLOSE, { .vop_close = objfs_common_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = objfs_odir_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = objfs_dir_access } },
+ { VOPNAME_READDIR, { .vop_readdir = gfs_vop_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL }
};
diff --git a/usr/src/uts/common/fs/objfs/objfs_root.c b/usr/src/uts/common/fs/objfs/objfs_root.c
index 5c83f1e8dc..1e9bb8c1f0 100644
--- a/usr/src/uts/common/fs/objfs/objfs_root.c
+++ b/usr/src/uts/common/fs/objfs/objfs_root.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -34,6 +33,7 @@
#include <sys/modctl.h>
#include <sys/objfs.h>
#include <sys/objfs_impl.h>
+#include <sys/vfs_opreg.h>
#include <sys/systm.h>
extern int last_module_id;
@@ -156,14 +156,14 @@ objfs_root_readdir(vnode_t *vp, uio_t *uiop, cred_t *cr, int *eofp)
}
const fs_operation_def_t objfs_tops_root[] = {
- { VOPNAME_OPEN, objfs_dir_open },
- { VOPNAME_CLOSE, objfs_common_close },
- { VOPNAME_IOCTL, fs_inval },
- { VOPNAME_GETATTR, objfs_root_getattr },
- { VOPNAME_ACCESS, objfs_dir_access },
- { VOPNAME_READDIR, objfs_root_readdir },
- { VOPNAME_LOOKUP, gfs_vop_lookup },
- { VOPNAME_SEEK, fs_seek },
- { VOPNAME_INACTIVE, (fs_generic_func_p)gfs_vop_inactive },
+ { VOPNAME_OPEN, { .vop_open = objfs_dir_open } },
+ { VOPNAME_CLOSE, { .vop_close = objfs_common_close } },
+ { VOPNAME_IOCTL, { .error = fs_inval } },
+ { VOPNAME_GETATTR, { .vop_getattr = objfs_root_getattr } },
+ { VOPNAME_ACCESS, { .vop_access = objfs_dir_access } },
+ { VOPNAME_READDIR, { .vop_readdir = objfs_root_readdir } },
+ { VOPNAME_LOOKUP, { .vop_lookup = gfs_vop_lookup } },
+ { VOPNAME_SEEK, { .vop_seek = fs_seek } },
+ { VOPNAME_INACTIVE, { .vop_inactive = gfs_vop_inactive } },
{ NULL }
};
diff --git a/usr/src/uts/common/fs/objfs/objfs_vfs.c b/usr/src/uts/common/fs/objfs/objfs_vfs.c
index 77f5b6a5ef..0ee0b0a577 100644
--- a/usr/src/uts/common/fs/objfs/objfs_vfs.c
+++ b/usr/src/uts/common/fs/objfs/objfs_vfs.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -32,6 +31,7 @@
#include <sys/mount.h>
#include <sys/objfs.h>
#include <sys/objfs_impl.h>
+#include <sys/vfs_opreg.h>
#include <sys/policy.h>
#include <sys/sunddi.h>
#include <sys/sysmacros.h>
@@ -267,9 +267,9 @@ objfs_statvfs(vfs_t *vfsp, statvfs64_t *sp)
}
static const fs_operation_def_t objfs_vfstops[] = {
- { VFSNAME_MOUNT, objfs_mount },
- { VFSNAME_UNMOUNT, objfs_unmount },
- { VFSNAME_ROOT, objfs_root },
- { VFSNAME_STATVFS, objfs_statvfs },
+ { VFSNAME_MOUNT, { .vfs_mount = objfs_mount } },
+ { VFSNAME_UNMOUNT, { .vfs_unmount = objfs_unmount } },
+ { VFSNAME_ROOT, { .vfs_root = objfs_root } },
+ { VFSNAME_STATVFS, { .vfs_statvfs = objfs_statvfs } },
{ NULL }
};
diff --git a/usr/src/uts/common/fs/pcfs/pc_vfsops.c b/usr/src/uts/common/fs/pcfs/pc_vfsops.c
index 56a266b60b..98d98e04d9 100644
--- a/usr/src/uts/common/fs/pcfs/pc_vfsops.c
+++ b/usr/src/uts/common/fs/pcfs/pc_vfsops.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.
*/
@@ -34,6 +34,7 @@
#include <sys/disp.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/fdio.h>
#include <sys/file.h>
@@ -225,14 +226,14 @@ static int
pcfsinit(int fstype, char *name)
{
static const fs_operation_def_t pcfs_vfsops_template[] = {
- VFSNAME_MOUNT, pcfs_mount,
- VFSNAME_UNMOUNT, pcfs_unmount,
- VFSNAME_ROOT, pcfs_root,
- VFSNAME_STATVFS, pcfs_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) pcfs_sync,
- VFSNAME_VGET, pcfs_vget,
- VFSNAME_FREEVFS, (fs_generic_func_p) pcfs_freevfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = pcfs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = pcfs_unmount },
+ VFSNAME_ROOT, { .vfs_root = pcfs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = pcfs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = pcfs_sync },
+ VFSNAME_VGET, { .vfs_vget = pcfs_vget },
+ VFSNAME_FREEVFS, { .vfs_freevfs = pcfs_freevfs },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/pcfs/pc_vnops.c b/usr/src/uts/common/fs/pcfs/pc_vnops.c
index 46d583d910..a2b3d730dd 100644
--- a/usr/src/uts/common/fs/pcfs/pc_vnops.c
+++ b/usr/src/uts/common/fs/pcfs/pc_vnops.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.
*/
@@ -33,6 +33,7 @@
#include <sys/buf.h>
#include <sys/stat.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/dirent.h>
#include <sys/vnode.h>
#include <sys/proc.h>
@@ -123,48 +124,48 @@ struct vnodeops *pcfs_fvnodeops;
struct vnodeops *pcfs_dvnodeops;
const fs_operation_def_t pcfs_fvnodeops_template[] = {
- VOPNAME_OPEN, pcfs_open,
- VOPNAME_CLOSE, pcfs_close,
- VOPNAME_READ, pcfs_read,
- VOPNAME_WRITE, pcfs_write,
- VOPNAME_GETATTR, pcfs_getattr,
- VOPNAME_SETATTR, pcfs_setattr,
- VOPNAME_ACCESS, pcfs_access,
- VOPNAME_FSYNC, pcfs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) pcfs_inactive,
- VOPNAME_FID, pcfs_fid,
- VOPNAME_SEEK, pcfs_seek,
- VOPNAME_SPACE, pcfs_space,
- VOPNAME_GETPAGE, pcfs_getpage,
- VOPNAME_PUTPAGE, pcfs_putpage,
- VOPNAME_MAP, (fs_generic_func_p) pcfs_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) pcfs_addmap,
- VOPNAME_DELMAP, pcfs_delmap,
- VOPNAME_PATHCONF, pcfs_pathconf,
- VOPNAME_VNEVENT, fs_vnevent_support,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = pcfs_open },
+ VOPNAME_CLOSE, { .vop_close = pcfs_close },
+ VOPNAME_READ, { .vop_read = pcfs_read },
+ VOPNAME_WRITE, { .vop_write = pcfs_write },
+ VOPNAME_GETATTR, { .vop_getattr = pcfs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = pcfs_setattr },
+ VOPNAME_ACCESS, { .vop_access = pcfs_access },
+ VOPNAME_FSYNC, { .vop_fsync = pcfs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = pcfs_inactive },
+ VOPNAME_FID, { .vop_fid = pcfs_fid },
+ VOPNAME_SEEK, { .vop_seek = pcfs_seek },
+ VOPNAME_SPACE, { .vop_space = pcfs_space },
+ VOPNAME_GETPAGE, { .vop_getpage = pcfs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = pcfs_putpage },
+ VOPNAME_MAP, { .vop_map = pcfs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = pcfs_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = pcfs_delmap },
+ VOPNAME_PATHCONF, { .vop_pathconf = pcfs_pathconf },
+ VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support },
+ NULL, NULL
};
const fs_operation_def_t pcfs_dvnodeops_template[] = {
- VOPNAME_OPEN, pcfs_open,
- VOPNAME_CLOSE, pcfs_close,
- VOPNAME_GETATTR, pcfs_getattr,
- VOPNAME_SETATTR, pcfs_setattr,
- VOPNAME_ACCESS, pcfs_access,
- VOPNAME_LOOKUP, pcfs_lookup,
- VOPNAME_CREATE, pcfs_create,
- VOPNAME_REMOVE, pcfs_remove,
- VOPNAME_RENAME, pcfs_rename,
- VOPNAME_MKDIR, pcfs_mkdir,
- VOPNAME_RMDIR, pcfs_rmdir,
- VOPNAME_READDIR, pcfs_readdir,
- VOPNAME_FSYNC, pcfs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) pcfs_inactive,
- VOPNAME_FID, pcfs_fid,
- VOPNAME_SEEK, pcfs_seek,
- VOPNAME_PATHCONF, pcfs_pathconf,
- VOPNAME_VNEVENT, fs_vnevent_support,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = pcfs_open },
+ VOPNAME_CLOSE, { .vop_close = pcfs_close },
+ VOPNAME_GETATTR, { .vop_getattr = pcfs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = pcfs_setattr },
+ VOPNAME_ACCESS, { .vop_access = pcfs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = pcfs_lookup },
+ VOPNAME_CREATE, { .vop_create = pcfs_create },
+ VOPNAME_REMOVE, { .vop_remove = pcfs_remove },
+ VOPNAME_RENAME, { .vop_rename = pcfs_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = pcfs_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = pcfs_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = pcfs_readdir },
+ VOPNAME_FSYNC, { .vop_fsync = pcfs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = pcfs_inactive },
+ VOPNAME_FID, { .vop_fid = pcfs_fid },
+ VOPNAME_SEEK, { .vop_seek = pcfs_seek },
+ VOPNAME_PATHCONF, { .vop_pathconf = pcfs_pathconf },
+ VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/portfs/port.c b/usr/src/uts/common/fs/portfs/port.c
index 0c657b220a..a331eaea5b 100644
--- a/usr/src/uts/common/fs/portfs/port.c
+++ b/usr/src/uts/common/fs/portfs/port.c
@@ -31,6 +31,7 @@
#include <sys/cred.h>
#include <sys/modctl.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/sysmacros.h>
#include <sys/cmn_err.h>
#include <sys/stat.h>
diff --git a/usr/src/uts/common/fs/portfs/port_vnops.c b/usr/src/uts/common/fs/portfs/port_vnops.c
index 14f3a60aa6..aa8bc952d2 100644
--- a/usr/src/uts/common/fs/portfs/port_vnops.c
+++ b/usr/src/uts/common/fs/portfs/port_vnops.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -28,6 +28,7 @@
#include <sys/types.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/kmem.h>
#include <fs/fs_subr.h>
#include <sys/proc.h>
@@ -44,19 +45,19 @@ static int port_poll(vnode_t *, short, int, short *, struct pollhead **);
static void port_inactive(struct vnode *, cred_t *);
const fs_operation_def_t port_vnodeops_template[] = {
- VOPNAME_OPEN, port_open,
- VOPNAME_CLOSE, port_close,
- VOPNAME_GETATTR, port_getattr,
- VOPNAME_ACCESS, port_access,
- VOPNAME_INACTIVE, (fs_generic_func_p) port_inactive,
- VOPNAME_FRLOCK, fs_error,
- VOPNAME_REALVP, port_realvp,
- VOPNAME_POLL, (fs_generic_func_p) port_poll,
- VOPNAME_PATHCONF, fs_error,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_GETSECATTR, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = port_open },
+ VOPNAME_CLOSE, { .vop_close = port_close },
+ VOPNAME_GETATTR, { .vop_getattr = port_getattr },
+ VOPNAME_ACCESS, { .vop_access = port_access },
+ VOPNAME_INACTIVE, { .vop_inactive = port_inactive },
+ VOPNAME_FRLOCK, { .error = fs_error },
+ VOPNAME_REALVP, { .vop_realvp = port_realvp },
+ VOPNAME_POLL, { .vop_poll = port_poll },
+ VOPNAME_PATHCONF, { .error = fs_error },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_GETSECATTR, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
/* ARGSUSED */
diff --git a/usr/src/uts/common/fs/proc/prvfsops.c b/usr/src/uts/common/fs/proc/prvfsops.c
index 8f2d079feb..35d829facd 100644
--- a/usr/src/uts/common/fs/proc/prvfsops.c
+++ b/usr/src/uts/common/fs/proc/prvfsops.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.
*/
@@ -44,6 +44,7 @@
#include <sys/zone.h>
#include <sys/var.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/mode.h>
#include <sys/signal.h>
@@ -143,11 +144,11 @@ static int
prinit(int fstype, char *name)
{
static const fs_operation_def_t pr_vfsops_template[] = {
- VFSNAME_MOUNT, prmount,
- VFSNAME_UNMOUNT, prunmount,
- VFSNAME_ROOT, prroot,
- VFSNAME_STATVFS, prstatvfs,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = prmount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = prunmount },
+ VFSNAME_ROOT, { .vfs_root = prroot },
+ VFSNAME_STATVFS, { .vfs_statvfs = prstatvfs },
+ NULL, NULL
};
extern const fs_operation_def_t pr_vnodeops_template[];
int error;
diff --git a/usr/src/uts/common/fs/proc/prvnops.c b/usr/src/uts/common/fs/proc/prvnops.c
index 3f15bb084f..a8be6c151d 100644
--- a/usr/src/uts/common/fs/proc/prvnops.c
+++ b/usr/src/uts/common/fs/proc/prvnops.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.
*/
@@ -53,6 +53,7 @@
#include <sys/poll.h>
#include <sys/user.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/gfs.h>
#include <sys/vnode.h>
#include <sys/fault.h>
@@ -5927,25 +5928,25 @@ extern int prioctl(vnode_t *, int, intptr_t, int, cred_t *, int *);
* /proc vnode operations vector
*/
const fs_operation_def_t pr_vnodeops_template[] = {
- VOPNAME_OPEN, propen,
- VOPNAME_CLOSE, prclose,
- VOPNAME_READ, prread,
- VOPNAME_WRITE, prwrite,
- VOPNAME_IOCTL, prioctl,
- VOPNAME_GETATTR, prgetattr,
- VOPNAME_ACCESS, praccess,
- VOPNAME_LOOKUP, prlookup,
- VOPNAME_CREATE, prcreate,
- VOPNAME_READDIR, prreaddir,
- VOPNAME_READLINK, prreadlink,
- VOPNAME_FSYNC, prfsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) prinactive,
- VOPNAME_SEEK, prseek,
- VOPNAME_CMP, prcmp,
- VOPNAME_FRLOCK, fs_error,
- VOPNAME_REALVP, prrealvp,
- VOPNAME_POLL, (fs_generic_func_p) prpoll,
- VOPNAME_DISPOSE, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = propen },
+ VOPNAME_CLOSE, { .vop_close = prclose },
+ VOPNAME_READ, { .vop_read = prread },
+ VOPNAME_WRITE, { .vop_write = prwrite },
+ VOPNAME_IOCTL, { .vop_ioctl = prioctl },
+ VOPNAME_GETATTR, { .vop_getattr = prgetattr },
+ VOPNAME_ACCESS, { .vop_access = praccess },
+ VOPNAME_LOOKUP, { .vop_lookup = prlookup },
+ VOPNAME_CREATE, { .vop_create = prcreate },
+ VOPNAME_READDIR, { .vop_readdir = prreaddir },
+ VOPNAME_READLINK, { .vop_readlink = prreadlink },
+ VOPNAME_FSYNC, { .vop_fsync = prfsync },
+ VOPNAME_INACTIVE, { .vop_inactive = prinactive },
+ VOPNAME_SEEK, { .vop_seek = prseek },
+ VOPNAME_CMP, { .vop_cmp = prcmp },
+ VOPNAME_FRLOCK, { .error = fs_error },
+ VOPNAME_REALVP, { .vop_realvp = prrealvp },
+ VOPNAME_POLL, { .vop_poll = prpoll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/sockfs/socksctp.c b/usr/src/uts/common/fs/sockfs/socksctp.c
index 4a8b57b2da..d50f143523 100644
--- a/usr/src/uts/common/fs/sockfs/socksctp.c
+++ b/usr/src/uts/common/fs/sockfs/socksctp.c
@@ -32,6 +32,7 @@
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/debug.h>
#include <sys/errno.h>
diff --git a/usr/src/uts/common/fs/sockfs/socksctpsubr.c b/usr/src/uts/common/fs/sockfs/socksctpsubr.c
index c0f492fb61..11da6b7b1d 100644
--- a/usr/src/uts/common/fs/sockfs/socksctpsubr.c
+++ b/usr/src/uts/common/fs/sockfs/socksctpsubr.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -37,6 +37,7 @@
#include <sys/sysmacros.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
diff --git a/usr/src/uts/common/fs/sockfs/socksctpvnops.c b/usr/src/uts/common/fs/sockfs/socksctpvnops.c
index 0adb375b15..ea3c49ce6e 100644
--- a/usr/src/uts/common/fs/sockfs/socksctpvnops.c
+++ b/usr/src/uts/common/fs/sockfs/socksctpvnops.c
@@ -35,6 +35,7 @@
#include <sys/errno.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/stropts.h>
#include <sys/cmn_err.h>
@@ -78,22 +79,22 @@ static int socksctpv_poll(struct vnode *, short, int, short *,
struct pollhead **);
const fs_operation_def_t socksctp_vnodeops_template[] = {
- VOPNAME_OPEN, socksctpv_open,
- VOPNAME_CLOSE, socksctpv_close,
- VOPNAME_READ, socksctpv_read,
- VOPNAME_WRITE, socksctpv_write,
- VOPNAME_IOCTL, socksctpv_ioctl,
- VOPNAME_SETFL, socksctp_setfl,
- VOPNAME_GETATTR, socktpi_getattr,
- VOPNAME_SETATTR, socktpi_setattr,
- VOPNAME_ACCESS, socktpi_access,
- VOPNAME_FSYNC, socktpi_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) socksctpv_inactive,
- VOPNAME_FID, socktpi_fid,
- VOPNAME_SEEK, socktpi_seek,
- VOPNAME_POLL, (fs_generic_func_p) socksctpv_poll,
- VOPNAME_DISPOSE, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = socksctpv_open },
+ VOPNAME_CLOSE, { .vop_close = socksctpv_close },
+ VOPNAME_READ, { .vop_read = socksctpv_read },
+ VOPNAME_WRITE, { .vop_write = socksctpv_write },
+ VOPNAME_IOCTL, { .vop_ioctl = socksctpv_ioctl },
+ VOPNAME_SETFL, { .vop_setfl = socksctp_setfl },
+ VOPNAME_GETATTR, { .vop_getattr = socktpi_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = socktpi_setattr },
+ VOPNAME_ACCESS, { .vop_access = socktpi_access },
+ VOPNAME_FSYNC, { .vop_fsync = socktpi_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = socksctpv_inactive },
+ VOPNAME_FID, { .vop_fid = socktpi_fid },
+ VOPNAME_SEEK, { .vop_seek = socktpi_seek },
+ VOPNAME_POLL, { .vop_poll = socksctpv_poll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ NULL, NULL
};
struct vnodeops *socksctp_vnodeops;
diff --git a/usr/src/uts/common/fs/sockfs/socksdp.c b/usr/src/uts/common/fs/sockfs/socksdp.c
index 197ff6997e..45f8713169 100755
--- a/usr/src/uts/common/fs/sockfs/socksdp.c
+++ b/usr/src/uts/common/fs/sockfs/socksdp.c
@@ -32,6 +32,7 @@
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/debug.h>
#include <sys/errno.h>
diff --git a/usr/src/uts/common/fs/sockfs/socksdpsubr.c b/usr/src/uts/common/fs/sockfs/socksdpsubr.c
index 6ae3c4d03d..42884fa4be 100755
--- a/usr/src/uts/common/fs/sockfs/socksdpsubr.c
+++ b/usr/src/uts/common/fs/sockfs/socksdpsubr.c
@@ -37,6 +37,7 @@
#include <sys/sysmacros.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
diff --git a/usr/src/uts/common/fs/sockfs/socksdpvnops.c b/usr/src/uts/common/fs/sockfs/socksdpvnops.c
index 6bdc83b20c..02cb7a07c1 100755
--- a/usr/src/uts/common/fs/sockfs/socksdpvnops.c
+++ b/usr/src/uts/common/fs/sockfs/socksdpvnops.c
@@ -35,6 +35,7 @@
#include <sys/errno.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/stropts.h>
#include <sys/cmn_err.h>
@@ -77,22 +78,22 @@ static int socksdpv_poll(struct vnode *, short, int, short *,
struct pollhead **);
const fs_operation_def_t socksdp_vnodeops_template[] = {
- VOPNAME_OPEN, socksdpv_open,
- VOPNAME_CLOSE, socksdpv_close,
- VOPNAME_READ, socksdpv_read,
- VOPNAME_WRITE, socksdpv_write,
- VOPNAME_IOCTL, socksdpv_ioctl,
- VOPNAME_SETFL, socksdp_setfl,
- VOPNAME_GETATTR, socktpi_getattr,
- VOPNAME_SETATTR, socktpi_setattr,
- VOPNAME_ACCESS, socktpi_access,
- VOPNAME_FSYNC, socktpi_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) socksdpv_inactive,
- VOPNAME_FID, socktpi_fid,
- VOPNAME_SEEK, socktpi_seek,
- VOPNAME_POLL, (fs_generic_func_p) socksdpv_poll,
- VOPNAME_DISPOSE, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = socksdpv_open },
+ VOPNAME_CLOSE, { .vop_close = socksdpv_close },
+ VOPNAME_READ, { .vop_read = socksdpv_read },
+ VOPNAME_WRITE, { .vop_write = socksdpv_write },
+ VOPNAME_IOCTL, { .vop_ioctl = socksdpv_ioctl },
+ VOPNAME_SETFL, { .vop_setfl = socksdp_setfl },
+ VOPNAME_GETATTR, { .vop_getattr = socktpi_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = socktpi_setattr },
+ VOPNAME_ACCESS, { .vop_access = socktpi_access },
+ VOPNAME_FSYNC, { .vop_fsync = socktpi_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = socksdpv_inactive },
+ VOPNAME_FID, { .vop_fid = socktpi_fid },
+ VOPNAME_SEEK, { .vop_seek = socktpi_seek },
+ VOPNAME_POLL, { .vop_poll = socksdpv_poll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ NULL, NULL
};
struct vnodeops *socksdp_vnodeops;
diff --git a/usr/src/uts/common/fs/sockfs/socksubr.c b/usr/src/uts/common/fs/sockfs/socksubr.c
index f9f5eed188..ad90f21a36 100644
--- a/usr/src/uts/common/fs/sockfs/socksubr.c
+++ b/usr/src/uts/common/fs/sockfs/socksubr.c
@@ -36,6 +36,7 @@
#include <sys/kmem.h>
#include <sys/sysmacros.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/debug.h>
#include <sys/errno.h>
diff --git a/usr/src/uts/common/fs/sockfs/sockvnops.c b/usr/src/uts/common/fs/sockfs/sockvnops.c
index 66224f437a..32b7f2d361 100644
--- a/usr/src/uts/common/fs/sockfs/sockvnops.c
+++ b/usr/src/uts/common/fs/sockfs/sockvnops.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -48,6 +48,7 @@
#include <sys/sysmacros.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/poll.h>
#include <sys/stropts.h>
@@ -108,22 +109,22 @@ static int socktpi_poll(struct vnode *, short, int, short *,
struct vnodeops *socktpi_vnodeops;
const fs_operation_def_t socktpi_vnodeops_template[] = {
- VOPNAME_OPEN, socktpi_open,
- VOPNAME_CLOSE, socktpi_close,
- VOPNAME_READ, socktpi_read,
- VOPNAME_WRITE, socktpi_write,
- VOPNAME_IOCTL, socktpi_ioctl,
- VOPNAME_SETFL, socktpi_setfl,
- VOPNAME_GETATTR, socktpi_getattr,
- VOPNAME_SETATTR, socktpi_setattr,
- VOPNAME_ACCESS, socktpi_access,
- VOPNAME_FSYNC, socktpi_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) socktpi_inactive,
- VOPNAME_FID, socktpi_fid,
- VOPNAME_SEEK, socktpi_seek,
- VOPNAME_POLL, (fs_generic_func_p) socktpi_poll,
- VOPNAME_DISPOSE, fs_error,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = socktpi_open },
+ VOPNAME_CLOSE, { .vop_close = socktpi_close },
+ VOPNAME_READ, { .vop_read = socktpi_read },
+ VOPNAME_WRITE, { .vop_write = socktpi_write },
+ VOPNAME_IOCTL, { .vop_ioctl = socktpi_ioctl },
+ VOPNAME_SETFL, { .vop_setfl = socktpi_setfl },
+ VOPNAME_GETATTR, { .vop_getattr = socktpi_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = socktpi_setattr },
+ VOPNAME_ACCESS, { .vop_access = socktpi_access },
+ VOPNAME_FSYNC, { .vop_fsync = socktpi_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = socktpi_inactive },
+ VOPNAME_FID, { .vop_fid = socktpi_fid },
+ VOPNAME_SEEK, { .vop_seek = socktpi_seek },
+ VOPNAME_POLL, { .vop_poll = socktpi_poll },
+ VOPNAME_DISPOSE, { .error = fs_error },
+ NULL, NULL
};
/*
diff --git a/usr/src/uts/common/fs/specfs/specsubr.c b/usr/src/uts/common/fs/specfs/specsubr.c
index eb1ef88eab..ea87c688d6 100644
--- a/usr/src/uts/common/fs/specfs/specsubr.c
+++ b/usr/src/uts/common/fs/specfs/specsubr.c
@@ -49,6 +49,7 @@
#include <sys/kmem.h>
#include <sys/sysmacros.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/fs/snode.h>
#include <sys/fs/fifonode.h>
@@ -736,7 +737,7 @@ int
specinit(int fstype, char *name)
{
static const fs_operation_def_t spec_vfsops_template[] = {
- VFSNAME_SYNC, (fs_generic_func_p) spec_sync,
+ VFSNAME_SYNC, { .vfs_sync = spec_sync },
NULL, NULL
};
extern struct vnodeops *spec_vnodeops;
diff --git a/usr/src/uts/common/fs/specfs/specvnops.c b/usr/src/uts/common/fs/specfs/specvnops.c
index 610ae5a5ec..7f613ba824 100644
--- a/usr/src/uts/common/fs/specfs/specvnops.c
+++ b/usr/src/uts/common/fs/specfs/specvnops.c
@@ -63,6 +63,7 @@
#include <sys/sysmacros.h>
#include <sys/uio.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/stat.h>
#include <sys/poll.h>
@@ -155,33 +156,33 @@ static int spec_pathconf(struct vnode *, int, ulong_t *, struct cred *);
struct vnodeops *spec_vnodeops;
const fs_operation_def_t spec_vnodeops_template[] = {
- VOPNAME_OPEN, spec_open,
- VOPNAME_CLOSE, spec_close,
- VOPNAME_READ, spec_read,
- VOPNAME_WRITE, spec_write,
- VOPNAME_IOCTL, spec_ioctl,
- VOPNAME_GETATTR, spec_getattr,
- VOPNAME_SETATTR, spec_setattr,
- VOPNAME_ACCESS, spec_access,
- VOPNAME_CREATE, spec_create,
- VOPNAME_FSYNC, spec_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) spec_inactive,
- VOPNAME_FID, spec_fid,
- VOPNAME_SEEK, spec_seek,
- VOPNAME_PATHCONF, spec_pathconf,
- VOPNAME_FRLOCK, spec_frlock,
- VOPNAME_REALVP, spec_realvp,
- VOPNAME_GETPAGE, spec_getpage,
- VOPNAME_PUTPAGE, spec_putpage,
- VOPNAME_MAP, (fs_generic_func_p) spec_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) spec_addmap,
- VOPNAME_DELMAP, spec_delmap,
- VOPNAME_POLL, (fs_generic_func_p) spec_poll,
- VOPNAME_DUMP, spec_dump,
- VOPNAME_PAGEIO, spec_pageio,
- VOPNAME_SETSECATTR, spec_setsecattr,
- VOPNAME_GETSECATTR, spec_getsecattr,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = spec_open },
+ VOPNAME_CLOSE, { .vop_close = spec_close },
+ VOPNAME_READ, { .vop_read = spec_read },
+ VOPNAME_WRITE, { .vop_write = spec_write },
+ VOPNAME_IOCTL, { .vop_ioctl = spec_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = spec_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = spec_setattr },
+ VOPNAME_ACCESS, { .vop_access = spec_access },
+ VOPNAME_CREATE, { .vop_create = spec_create },
+ VOPNAME_FSYNC, { .vop_fsync = spec_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = spec_inactive },
+ VOPNAME_FID, { .vop_fid = spec_fid },
+ VOPNAME_SEEK, { .vop_seek = spec_seek },
+ VOPNAME_PATHCONF, { .vop_pathconf = spec_pathconf },
+ VOPNAME_FRLOCK, { .vop_frlock = spec_frlock },
+ VOPNAME_REALVP, { .vop_realvp = spec_realvp },
+ VOPNAME_GETPAGE, { .vop_getpage = spec_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = spec_putpage },
+ VOPNAME_MAP, { .vop_map = spec_map },
+ VOPNAME_ADDMAP, { .vop_addmap = spec_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = spec_delmap },
+ VOPNAME_POLL, { .vop_poll = spec_poll },
+ VOPNAME_DUMP, { .vop_dump = spec_dump },
+ VOPNAME_PAGEIO, { .vop_pageio = spec_pageio },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = spec_setsecattr },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = spec_getsecattr },
+ NULL, NULL
};
/*
diff --git a/usr/src/uts/common/fs/swapfs/swap_subr.c b/usr/src/uts/common/fs/swapfs/swap_subr.c
index df175211c6..e589c38073 100644
--- a/usr/src/uts/common/fs/swapfs/swap_subr.c
+++ b/usr/src/uts/common/fs/swapfs/swap_subr.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -32,6 +31,7 @@
#include <sys/errno.h>
#include <sys/kmem.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/swap.h>
#include <sys/sysmacros.h>
#include <sys/buf.h>
@@ -167,7 +167,7 @@ swapinit(int fstype, char *name)
int i, error;
static const fs_operation_def_t swap_vfsops[] = {
- VFSNAME_SYNC, (fs_generic_func_p) swap_sync,
+ VFSNAME_SYNC, { .vfs_sync = swap_sync },
NULL, NULL
};
diff --git a/usr/src/uts/common/fs/swapfs/swap_vnops.c b/usr/src/uts/common/fs/swapfs/swap_vnops.c
index bdcf5b8ca2..53bdae350c 100644
--- a/usr/src/uts/common/fs/swapfs/swap_vnops.c
+++ b/usr/src/uts/common/fs/swapfs/swap_vnops.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.
*/
@@ -32,6 +32,7 @@
#include <sys/cred.h>
#include <sys/errno.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/cmn_err.h>
#include <sys/swap.h>
#include <sys/mman.h>
@@ -75,16 +76,16 @@ static int swap_putapage(struct vnode *vp, page_t *pp, u_offset_t *off,
size_t *lenp, int flags, struct cred *cr);
const fs_operation_def_t swap_vnodeops_template[] = {
- VOPNAME_INACTIVE, (fs_generic_func_p) swap_inactive,
- VOPNAME_GETPAGE, swap_getpage,
- VOPNAME_PUTPAGE, swap_putpage,
- VOPNAME_DISPOSE, (fs_generic_func_p) swap_dispose,
- VOPNAME_SETFL, fs_error,
- VOPNAME_POLL, fs_error,
- VOPNAME_PATHCONF, fs_error,
- VOPNAME_GETSECATTR, fs_error,
- VOPNAME_SHRLOCK, fs_error,
- NULL, NULL
+ VOPNAME_INACTIVE, { .vop_inactive = swap_inactive },
+ VOPNAME_GETPAGE, { .vop_getpage = swap_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = swap_putpage },
+ VOPNAME_DISPOSE, { .vop_dispose = swap_dispose },
+ VOPNAME_SETFL, { .error = fs_error },
+ VOPNAME_POLL, { .error = fs_error },
+ VOPNAME_PATHCONF, { .error = fs_error },
+ VOPNAME_GETSECATTR, { .error = fs_error },
+ VOPNAME_SHRLOCK, { .error = fs_error },
+ NULL, NULL
};
vnodeops_t *swap_vnodeops;
diff --git a/usr/src/uts/common/fs/tmpfs/tmp_vfsops.c b/usr/src/uts/common/fs/tmpfs/tmp_vfsops.c
index fb5e0d74e4..f798cb8ed4 100644
--- a/usr/src/uts/common/fs/tmpfs/tmp_vfsops.c
+++ b/usr/src/uts/common/fs/tmpfs/tmp_vfsops.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.
*/
@@ -32,6 +32,7 @@
#include <sys/time.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/stat.h>
#include <sys/uio.h>
@@ -173,12 +174,12 @@ static int
tmpfsinit(int fstype, char *name)
{
static const fs_operation_def_t tmp_vfsops_template[] = {
- VFSNAME_MOUNT, tmp_mount,
- VFSNAME_UNMOUNT, tmp_unmount,
- VFSNAME_ROOT, tmp_root,
- VFSNAME_STATVFS, tmp_statvfs,
- VFSNAME_VGET, tmp_vget,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = tmp_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = tmp_unmount },
+ VFSNAME_ROOT, { .vfs_root = tmp_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = tmp_statvfs },
+ VFSNAME_VGET, { .vfs_vget = tmp_vget },
+ NULL, NULL
};
int error;
extern void tmpfs_hash_init();
diff --git a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
index 2f1e94a7c7..236d2bfd4b 100644
--- a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
+++ b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
@@ -33,6 +33,7 @@
#include <sys/user.h>
#include <sys/time.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/file.h>
#include <sys/fcntl.h>
@@ -2304,37 +2305,37 @@ tmp_pathconf(struct vnode *vp, int cmd, ulong_t *valp, cred_t *cr)
struct vnodeops *tmp_vnodeops;
const fs_operation_def_t tmp_vnodeops_template[] = {
- VOPNAME_OPEN, tmp_open,
- VOPNAME_CLOSE, tmp_close,
- VOPNAME_READ, tmp_read,
- VOPNAME_WRITE, tmp_write,
- VOPNAME_IOCTL, tmp_ioctl,
- VOPNAME_GETATTR, tmp_getattr,
- VOPNAME_SETATTR, tmp_setattr,
- VOPNAME_ACCESS, tmp_access,
- VOPNAME_LOOKUP, tmp_lookup,
- VOPNAME_CREATE, tmp_create,
- VOPNAME_REMOVE, tmp_remove,
- VOPNAME_LINK, tmp_link,
- VOPNAME_RENAME, tmp_rename,
- VOPNAME_MKDIR, tmp_mkdir,
- VOPNAME_RMDIR, tmp_rmdir,
- VOPNAME_READDIR, tmp_readdir,
- VOPNAME_SYMLINK, tmp_symlink,
- VOPNAME_READLINK, tmp_readlink,
- VOPNAME_FSYNC, tmp_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) tmp_inactive,
- VOPNAME_FID, tmp_fid,
- VOPNAME_RWLOCK, tmp_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) tmp_rwunlock,
- VOPNAME_SEEK, tmp_seek,
- VOPNAME_SPACE, tmp_space,
- VOPNAME_GETPAGE, tmp_getpage,
- VOPNAME_PUTPAGE, tmp_putpage,
- VOPNAME_MAP, (fs_generic_func_p) tmp_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) tmp_addmap,
- VOPNAME_DELMAP, tmp_delmap,
- VOPNAME_PATHCONF, tmp_pathconf,
- VOPNAME_VNEVENT, fs_vnevent_support,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = tmp_open },
+ VOPNAME_CLOSE, { .vop_close = tmp_close },
+ VOPNAME_READ, { .vop_read = tmp_read },
+ VOPNAME_WRITE, { .vop_write = tmp_write },
+ VOPNAME_IOCTL, { .vop_ioctl = tmp_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = tmp_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = tmp_setattr },
+ VOPNAME_ACCESS, { .vop_access = tmp_access },
+ VOPNAME_LOOKUP, { .vop_lookup = tmp_lookup },
+ VOPNAME_CREATE, { .vop_create = tmp_create },
+ VOPNAME_REMOVE, { .vop_remove = tmp_remove },
+ VOPNAME_LINK, { .vop_link = tmp_link },
+ VOPNAME_RENAME, { .vop_rename = tmp_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = tmp_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = tmp_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = tmp_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = tmp_symlink },
+ VOPNAME_READLINK, { .vop_readlink = tmp_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = tmp_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = tmp_inactive },
+ VOPNAME_FID, { .vop_fid = tmp_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = tmp_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = tmp_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = tmp_seek },
+ VOPNAME_SPACE, { .vop_space = tmp_space },
+ VOPNAME_GETPAGE, { .vop_getpage = tmp_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = tmp_putpage },
+ VOPNAME_MAP, { .vop_map = tmp_map },
+ VOPNAME_ADDMAP, { .vop_addmap = tmp_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = tmp_delmap },
+ VOPNAME_PATHCONF, { .vop_pathconf = tmp_pathconf },
+ VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support },
+ NULL, NULL
};
diff --git a/usr/src/uts/common/fs/udfs/udf_vfsops.c b/usr/src/uts/common/fs/udfs/udf_vfsops.c
index 0ff009d6f3..79e76d2715 100644
--- a/usr/src/uts/common/fs/udfs/udf_vfsops.c
+++ b/usr/src/uts/common/fs/udfs/udf_vfsops.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.
*/
@@ -37,6 +37,7 @@
#include <sys/user.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/stat.h>
#include <sys/vnode.h>
#include <sys/mode.h>
@@ -1897,14 +1898,14 @@ static int
udfinit(int fstype, char *name)
{
static const fs_operation_def_t udf_vfsops_template[] = {
- VFSNAME_MOUNT, udf_mount,
- VFSNAME_UNMOUNT, udf_unmount,
- VFSNAME_ROOT, udf_root,
- VFSNAME_STATVFS, udf_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) udf_sync,
- VFSNAME_VGET, udf_vget,
- VFSNAME_MOUNTROOT, udf_mountroot,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = udf_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = udf_unmount },
+ VFSNAME_ROOT, { .vfs_root = udf_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = udf_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = udf_sync },
+ VFSNAME_VGET, { .vfs_vget = udf_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = udf_mountroot },
+ NULL, NULL
};
extern struct vnodeops *udf_vnodeops;
extern const fs_operation_def_t udf_vnodeops_template[];
diff --git a/usr/src/uts/common/fs/udfs/udf_vnops.c b/usr/src/uts/common/fs/udfs/udf_vnops.c
index 1a0378dcb9..b67d80c394 100644
--- a/usr/src/uts/common/fs/udfs/udf_vnops.c
+++ b/usr/src/uts/common/fs/udfs/udf_vnops.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -38,6 +37,7 @@
#include <sys/user.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/stat.h>
#include <sys/vnode.h>
#include <sys/mode.h>
@@ -188,41 +188,41 @@ typedef struct mio_slave {
struct vnodeops *udf_vnodeops;
const fs_operation_def_t udf_vnodeops_template[] = {
- VOPNAME_OPEN, udf_open,
- VOPNAME_CLOSE, udf_close,
- VOPNAME_READ, udf_read,
- VOPNAME_WRITE, udf_write,
- VOPNAME_IOCTL, udf_ioctl,
- VOPNAME_GETATTR, udf_getattr,
- VOPNAME_SETATTR, udf_setattr,
- VOPNAME_ACCESS, udf_access,
- VOPNAME_LOOKUP, udf_lookup,
- VOPNAME_CREATE, udf_create,
- VOPNAME_REMOVE, udf_remove,
- VOPNAME_LINK, udf_link,
- VOPNAME_RENAME, udf_rename,
- VOPNAME_MKDIR, udf_mkdir,
- VOPNAME_RMDIR, udf_rmdir,
- VOPNAME_READDIR, udf_readdir,
- VOPNAME_SYMLINK, udf_symlink,
- VOPNAME_READLINK, udf_readlink,
- VOPNAME_FSYNC, udf_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) udf_inactive,
- VOPNAME_FID, udf_fid,
- VOPNAME_RWLOCK, udf_rwlock,
- VOPNAME_RWUNLOCK, (fs_generic_func_p) udf_rwunlock,
- VOPNAME_SEEK, udf_seek,
- VOPNAME_FRLOCK, udf_frlock,
- VOPNAME_SPACE, udf_space,
- VOPNAME_GETPAGE, udf_getpage,
- VOPNAME_PUTPAGE, udf_putpage,
- VOPNAME_MAP, (fs_generic_func_p) udf_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) udf_addmap,
- VOPNAME_DELMAP, udf_delmap,
- VOPNAME_PATHCONF, udf_l_pathconf,
- VOPNAME_PAGEIO, udf_pageio,
- VOPNAME_VNEVENT, fs_vnevent_support,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = udf_open },
+ VOPNAME_CLOSE, { .vop_close = udf_close },
+ VOPNAME_READ, { .vop_read = udf_read },
+ VOPNAME_WRITE, { .vop_write = udf_write },
+ VOPNAME_IOCTL, { .vop_ioctl = udf_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = udf_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = udf_setattr },
+ VOPNAME_ACCESS, { .vop_access = udf_access },
+ VOPNAME_LOOKUP, { .vop_lookup = udf_lookup },
+ VOPNAME_CREATE, { .vop_create = udf_create },
+ VOPNAME_REMOVE, { .vop_remove = udf_remove },
+ VOPNAME_LINK, { .vop_link = udf_link },
+ VOPNAME_RENAME, { .vop_rename = udf_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = udf_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = udf_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = udf_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = udf_symlink },
+ VOPNAME_READLINK, { .vop_readlink = udf_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = udf_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = udf_inactive },
+ VOPNAME_FID, { .vop_fid = udf_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = udf_rwlock },
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = udf_rwunlock },
+ VOPNAME_SEEK, { .vop_seek = udf_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = udf_frlock },
+ VOPNAME_SPACE, { .vop_space = udf_space },
+ VOPNAME_GETPAGE, { .vop_getpage = udf_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = udf_putpage },
+ VOPNAME_MAP, { .vop_map = udf_map },
+ VOPNAME_ADDMAP, { .vop_addmap = udf_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = udf_delmap },
+ VOPNAME_PATHCONF, { .vop_pathconf = udf_l_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = udf_pageio },
+ VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support },
+ NULL, NULL
};
/* ARGSUSED */
diff --git a/usr/src/uts/common/fs/ufs/ufs_vfsops.c b/usr/src/uts/common/fs/ufs/ufs_vfsops.c
index 880019da4d..35c4e309f0 100644
--- a/usr/src/uts/common/fs/ufs/ufs_vfsops.c
+++ b/usr/src/uts/common/fs/ufs/ufs_vfsops.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.
*/
@@ -53,6 +53,7 @@
#include <sys/buf.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/file.h>
#include <sys/atomic.h>
@@ -2033,14 +2034,14 @@ static int
ufsinit(int fstype, char *name)
{
static const fs_operation_def_t ufs_vfsops_template[] = {
- VFSNAME_MOUNT, ufs_mount,
- VFSNAME_UNMOUNT, ufs_unmount,
- VFSNAME_ROOT, ufs_root,
- VFSNAME_STATVFS, ufs_statvfs,
- VFSNAME_SYNC, (fs_generic_func_p) ufs_sync,
- VFSNAME_VGET, ufs_vget,
- VFSNAME_MOUNTROOT, ufs_mountroot,
- NULL, NULL
+ VFSNAME_MOUNT, { .vfs_mount = ufs_mount },
+ VFSNAME_UNMOUNT, { .vfs_unmount = ufs_unmount },
+ VFSNAME_ROOT, { .vfs_root = ufs_root },
+ VFSNAME_STATVFS, { .vfs_statvfs = ufs_statvfs },
+ VFSNAME_SYNC, { .vfs_sync = ufs_sync },
+ VFSNAME_VGET, { .vfs_vget = ufs_vget },
+ VFSNAME_MOUNTROOT, { .vfs_mountroot = ufs_mountroot },
+ NULL, NULL
};
int error;
diff --git a/usr/src/uts/common/fs/ufs/ufs_vnops.c b/usr/src/uts/common/fs/ufs/ufs_vnops.c
index 694de37323..d8f3f9aa1a 100644
--- a/usr/src/uts/common/fs/ufs/ufs_vnops.c
+++ b/usr/src/uts/common/fs/ufs/ufs_vnops.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.
*/
@@ -46,6 +46,7 @@
#include <sys/user.h>
#include <sys/buf.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/proc.h>
#include <sys/disp.h>
@@ -171,47 +172,48 @@ extern int as_map_locked(struct as *, caddr_t, size_t, int ((*)()), void *);
*/
struct vnodeops *ufs_vnodeops;
+/* NOTE: "not blkd" below means that the operation isn't blocked by lockfs */
const fs_operation_def_t ufs_vnodeops_template[] = {
- VOPNAME_OPEN, ufs_open, /* will not be blocked by lockfs */
- VOPNAME_CLOSE, ufs_close, /* will not be blocked by lockfs */
- VOPNAME_READ, ufs_read,
- VOPNAME_WRITE, ufs_write,
- VOPNAME_IOCTL, ufs_ioctl,
- VOPNAME_GETATTR, ufs_getattr,
- VOPNAME_SETATTR, ufs_setattr,
- VOPNAME_ACCESS, ufs_access,
- VOPNAME_LOOKUP, ufs_lookup,
- VOPNAME_CREATE, ufs_create,
- VOPNAME_REMOVE, ufs_remove,
- VOPNAME_LINK, ufs_link,
- VOPNAME_RENAME, ufs_rename,
- VOPNAME_MKDIR, ufs_mkdir,
- VOPNAME_RMDIR, ufs_rmdir,
- VOPNAME_READDIR, ufs_readdir,
- VOPNAME_SYMLINK, ufs_symlink,
- VOPNAME_READLINK, ufs_readlink,
- VOPNAME_FSYNC, ufs_fsync,
- VOPNAME_INACTIVE, (fs_generic_func_p) ufs_inactive, /* not blocked */
- VOPNAME_FID, ufs_fid,
- VOPNAME_RWLOCK, ufs_rwlock, /* not blocked */
- VOPNAME_RWUNLOCK, (fs_generic_func_p) ufs_rwunlock, /* not blocked */
- VOPNAME_SEEK, ufs_seek,
- VOPNAME_FRLOCK, ufs_frlock,
- VOPNAME_SPACE, ufs_space,
- VOPNAME_GETPAGE, ufs_getpage,
- VOPNAME_PUTPAGE, ufs_putpage,
- VOPNAME_MAP, (fs_generic_func_p) ufs_map,
- VOPNAME_ADDMAP, (fs_generic_func_p) ufs_addmap, /* not blocked */
- VOPNAME_DELMAP, ufs_delmap, /* will not be blocked by lockfs */
- VOPNAME_POLL, (fs_generic_func_p) ufs_poll, /* not blocked */
- VOPNAME_DUMP, ufs_dump,
- VOPNAME_PATHCONF, ufs_l_pathconf,
- VOPNAME_PAGEIO, ufs_pageio,
- VOPNAME_DUMPCTL, ufs_dumpctl,
- VOPNAME_GETSECATTR, ufs_getsecattr,
- VOPNAME_SETSECATTR, ufs_setsecattr,
- VOPNAME_VNEVENT, fs_vnevent_support,
- NULL, NULL
+ VOPNAME_OPEN, { .vop_open = ufs_open }, /* not blkd */
+ VOPNAME_CLOSE, { .vop_close = ufs_close }, /* not blkd */
+ VOPNAME_READ, { .vop_read = ufs_read },
+ VOPNAME_WRITE, { .vop_write = ufs_write },
+ VOPNAME_IOCTL, { .vop_ioctl = ufs_ioctl },
+ VOPNAME_GETATTR, { .vop_getattr = ufs_getattr },
+ VOPNAME_SETATTR, { .vop_setattr = ufs_setattr },
+ VOPNAME_ACCESS, { .vop_access = ufs_access },
+ VOPNAME_LOOKUP, { .vop_lookup = ufs_lookup },
+ VOPNAME_CREATE, { .vop_create = ufs_create },
+ VOPNAME_REMOVE, { .vop_remove = ufs_remove },
+ VOPNAME_LINK, { .vop_link = ufs_link },
+ VOPNAME_RENAME, { .vop_rename = ufs_rename },
+ VOPNAME_MKDIR, { .vop_mkdir = ufs_mkdir },
+ VOPNAME_RMDIR, { .vop_rmdir = ufs_rmdir },
+ VOPNAME_READDIR, { .vop_readdir = ufs_readdir },
+ VOPNAME_SYMLINK, { .vop_symlink = ufs_symlink },
+ VOPNAME_READLINK, { .vop_readlink = ufs_readlink },
+ VOPNAME_FSYNC, { .vop_fsync = ufs_fsync },
+ VOPNAME_INACTIVE, { .vop_inactive = ufs_inactive }, /* not blkd */
+ VOPNAME_FID, { .vop_fid = ufs_fid },
+ VOPNAME_RWLOCK, { .vop_rwlock = ufs_rwlock }, /* not blkd */
+ VOPNAME_RWUNLOCK, { .vop_rwunlock = ufs_rwunlock }, /* not blkd */
+ VOPNAME_SEEK, { .vop_seek = ufs_seek },
+ VOPNAME_FRLOCK, { .vop_frlock = ufs_frlock },
+ VOPNAME_SPACE, { .vop_space = ufs_space },
+ VOPNAME_GETPAGE, { .vop_getpage = ufs_getpage },
+ VOPNAME_PUTPAGE, { .vop_putpage = ufs_putpage },
+ VOPNAME_MAP, { .vop_map = ufs_map },
+ VOPNAME_ADDMAP, { .vop_addmap = ufs_addmap }, /* not blkd */
+ VOPNAME_DELMAP, { .vop_delmap = ufs_delmap }, /* not blkd */
+ VOPNAME_POLL, { .vop_poll = ufs_poll }, /* not blkd */
+ VOPNAME_DUMP, { .vop_dump = ufs_dump },
+ VOPNAME_PATHCONF, { .vop_pathconf = ufs_l_pathconf },
+ VOPNAME_PAGEIO, { .vop_pageio = ufs_pageio },
+ VOPNAME_DUMPCTL, { .vop_dumpctl = ufs_dumpctl },
+ VOPNAME_GETSECATTR, { .vop_getsecattr = ufs_getsecattr },
+ VOPNAME_SETSECATTR, { .vop_setsecattr = ufs_setsecattr },
+ VOPNAME_VNEVENT, { .vop_vnevent = fs_vnevent_support },
+ NULL, NULL
};
#define MAX_BACKFILE_COUNT 9999
diff --git a/usr/src/uts/common/fs/vfs.c b/usr/src/uts/common/fs/vfs.c
index b473706b8b..09020d4f57 100644
--- a/usr/src/uts/common/fs/vfs.c
+++ b/usr/src/uts/common/fs/vfs.c
@@ -50,6 +50,7 @@
#include <sys/proc.h>
#include <sys/mount.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/fem.h>
#include <sys/mntent.h>
#include <sys/stat.h>
@@ -3768,12 +3769,6 @@ vf_to_stf(uint_t vf)
}
/*
- * Use old-style function prototype for vfsstray() so
- * that we can use it anywhere in the vfsops structure.
- */
-int vfsstray();
-
-/*
* Entries for (illegal) fstype 0.
*/
/* ARGSUSED */
@@ -3784,17 +3779,6 @@ vfsstray_sync(struct vfs *vfsp, short arg, struct cred *cr)
return (0);
}
-vfsops_t vfs_strayops = {
- vfsstray,
- vfsstray,
- vfsstray,
- vfsstray,
- vfsstray_sync,
- vfsstray,
- vfsstray,
- vfsstray
-};
-
/*
* Entries for (illegal) fstype 0.
*/
@@ -3838,23 +3822,36 @@ void
vfsinit(void)
{
struct vfssw *vswp;
+ vfsops_t *stray_vfsops;
int error;
extern int vopstats_enabled;
extern void vopstats_startup();
static const fs_operation_def_t EIO_vfsops_template[] = {
- VFSNAME_MOUNT, vfs_EIO,
- VFSNAME_UNMOUNT, vfs_EIO,
- VFSNAME_ROOT, vfs_EIO,
- VFSNAME_STATVFS, vfs_EIO,
- VFSNAME_SYNC, (fs_generic_func_p) vfs_EIO_sync,
- VFSNAME_VGET, vfs_EIO,
- VFSNAME_MOUNTROOT, vfs_EIO,
- VFSNAME_FREEVFS, vfs_EIO,
- VFSNAME_VNSTATE, vfs_EIO,
+ VFSNAME_MOUNT, { .error = vfs_EIO },
+ VFSNAME_UNMOUNT, { .error = vfs_EIO },
+ VFSNAME_ROOT, { .error = vfs_EIO },
+ VFSNAME_STATVFS, { .error = vfs_EIO },
+ VFSNAME_SYNC, { .vfs_sync = vfs_EIO_sync },
+ VFSNAME_VGET, { .error = vfs_EIO },
+ VFSNAME_MOUNTROOT, { .error = vfs_EIO },
+ VFSNAME_FREEVFS, { .error = vfs_EIO },
+ VFSNAME_VNSTATE, { .error = vfs_EIO },
NULL, NULL
};
+ static const fs_operation_def_t stray_vfsops_template[] = {
+ VFSNAME_MOUNT, { .error = vfsstray },
+ VFSNAME_UNMOUNT, { .error = vfsstray },
+ VFSNAME_ROOT, { .error = vfsstray },
+ VFSNAME_STATVFS, { .error = vfsstray },
+ VFSNAME_SYNC, { .vfs_sync = vfsstray_sync },
+ VFSNAME_VGET, { .error = vfsstray },
+ VFSNAME_MOUNTROOT, { .error = vfsstray },
+ VFSNAME_FREEVFS, { .error = vfsstray },
+ VFSNAME_VNSTATE, { .error = vfsstray },
+ NULL, NULL
+ };
/* Initialize the vnode cache (file systems may use it during init). */
@@ -3865,8 +3862,8 @@ vfsinit(void)
fem_init();
/* Initialize the dummy stray file system type. */
-
- vfssw[0].vsw_vfsops = vfs_strayops;
+ error = vfs_makefsops(stray_vfsops_template, &stray_vfsops);
+ vfssw[0].vsw_vfsops = *stray_vfsops; /* structure copy */
/* Initialize the dummy EIO file system. */
error = vfs_makefsops(EIO_vfsops_template, &EIO_vfsops);
@@ -3970,8 +3967,10 @@ fs_build_vector(void *vector, int *unused_ops,
{
int i, num_trans, num_ops, used;
- /* Count the number of translations and the number of supplied */
- /* operations. */
+ /*
+ * Count the number of translations and the number of supplied
+ * operations.
+ */
{
const fs_operation_trans_def_t *p;
@@ -4017,13 +4016,15 @@ fs_build_vector(void *vector, int *unused_ops,
}
}
- /* If the file system is using a "placeholder" for default */
- /* or error functions, grab the appropriate function out of */
- /* the translation table. If the file system didn't supply */
- /* this operation at all, use the default function. */
+ /*
+ * If the file system is using a "placeholder" for default
+ * or error functions, grab the appropriate function out of
+ * the translation table. If the file system didn't supply
+ * this operation at all, use the default function.
+ */
if (found) {
- result = operations[j].func;
+ result = operations[j].func.fs_generic;
if (result == fs_default) {
result = translation[i].defaultFunc;
} else if (result == fs_error) {
diff --git a/usr/src/uts/common/fs/vnode.c b/usr/src/uts/common/fs/vnode.c
index b18074e49d..5b796d6f8a 100644
--- a/usr/src/uts/common/fs/vnode.c
+++ b/usr/src/uts/common/fs/vnode.c
@@ -49,6 +49,7 @@
#include <sys/file.h>
#include <sys/pathname.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/vnode.h>
#include <sys/rwstlock.h>
#include <sys/fem.h>
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>
diff --git a/usr/src/uts/common/io/physmem.c b/usr/src/uts/common/io/physmem.c
index fbe4b7ca07..8a4cab75d1 100644
--- a/usr/src/uts/common/io/physmem.c
+++ b/usr/src/uts/common/io/physmem.c
@@ -44,6 +44,7 @@
#include <sys/fcntl.h>
#include <sys/vmsystm.h>
#include <sys/physmem.h>
+#include <sys/vfs_opreg.h>
static dev_info_t *physmem_dip = NULL;
@@ -108,11 +109,11 @@ static int physmem_delmap(struct vnode *vp, offset_t off, struct as *as,
static void physmem_inactive(vnode_t *vp, cred_t *crp);
const fs_operation_def_t physmem_vnodeops_template[] = {
- VOPNAME_GETPAGE, physmem_getpage,
- VOPNAME_ADDMAP, (fs_generic_func_p) physmem_addmap,
- VOPNAME_DELMAP, physmem_delmap,
- VOPNAME_INACTIVE, (fs_generic_func_p) physmem_inactive,
- NULL, NULL
+ VOPNAME_GETPAGE, { .vop_getpage = physmem_getpage },
+ VOPNAME_ADDMAP, { .vop_addmap = physmem_addmap },
+ VOPNAME_DELMAP, { .vop_delmap = physmem_delmap },
+ VOPNAME_INACTIVE, { .vop_inactive = physmem_inactive },
+ NULL, NULL
};
vnodeops_t *physmem_vnodeops = NULL;
diff --git a/usr/src/uts/common/os/vfs_conf.c b/usr/src/uts/common/os/vfs_conf.c
index ae953b5030..9747c75541 100644
--- a/usr/src/uts/common/os/vfs_conf.c
+++ b/usr/src/uts/common/os/vfs_conf.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.
*/
@@ -31,8 +31,6 @@
#include <sys/vfs.h>
#include <sys/t_lock.h>
-extern struct vfsops vfs_strayops; /* XXX move here from vfs.c ? */
-
extern int swapinit(int fstype, char *name);
/*
diff --git a/usr/src/uts/common/sys/Makefile b/usr/src/uts/common/sys/Makefile
index 2cab0fbac7..a8e545a6cc 100644
--- a/usr/src/uts/common/sys/Makefile
+++ b/usr/src/uts/common/sys/Makefile
@@ -479,7 +479,7 @@ CHKHDRS= \
syscall.h \
sysconf.h \
sysconfig.h \
- sysevent.h \
+ sysevent.h \
sysevent_impl.h \
sysinfo.h \
syslog.h \
@@ -546,6 +546,7 @@ CHKHDRS= \
var.h \
varargs.h \
vfs.h \
+ vfs_opreg.h \
vfstab.h \
vgareg.h \
videodev2.h \
diff --git a/usr/src/uts/common/sys/fem.h b/usr/src/uts/common/sys/fem.h
index 7e2a133948..04afc1466d 100644
--- a/usr/src/uts/common/sys/fem.h
+++ b/usr/src/uts/common/sys/fem.h
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -43,6 +42,8 @@
extern "C" {
#endif
+#ifdef _KERNEL
+
struct fs_operation_def; /* from vfs.h */
/*
@@ -90,7 +91,6 @@ typedef struct fem fem_t;
typedef struct fsem fsem_t;
typedef int femop_t();
-typedef int vop_t();
/*
* The following enumerations specify the conditions
@@ -141,107 +141,128 @@ struct fem_head {
struct fem_list *femh_list;
};
+/*
+ * FEM_OPS defines all the FEM operations. It is used to define
+ * the fem structure (below) and the fs_func_p union (vfs_opreg.h).
+ */
+#define FEM_OPS \
+ int (*femop_open)(femarg_t *vf, int mode, cred_t *cr); \
+ int (*femop_close)(femarg_t *vf, int flag, int count, \
+ offset_t offset, cred_t *cr); \
+ int (*femop_read)(femarg_t *vf, uio_t *uiop, int ioflag, \
+ cred_t *cr, struct caller_context *ct); \
+ int (*femop_write)(femarg_t *vf, uio_t *uiop, int ioflag, \
+ cred_t *cr, struct caller_context *ct); \
+ int (*femop_ioctl)(femarg_t *vf, int cmd, intptr_t arg, \
+ int flag, cred_t *cr, int *rvalp); \
+ int (*femop_setfl)(femarg_t *vf, int oflags, int nflags, \
+ cred_t *cr); \
+ int (*femop_getattr)(femarg_t *vf, vattr_t *vap, int flags, \
+ cred_t *cr); \
+ int (*femop_setattr)(femarg_t *vf, vattr_t *vap, int flags, \
+ cred_t *cr, caller_context_t *ct); \
+ int (*femop_access)(femarg_t *vf, int mode, int flags, \
+ cred_t *cr); \
+ int (*femop_lookup)(femarg_t *vf, char *nm, vnode_t **vpp, \
+ pathname_t *pnp, int flags, vnode_t *rdir, \
+ cred_t *cr); \
+ int (*femop_create)(femarg_t *vf, char *name, vattr_t *vap, \
+ vcexcl_t excl, int mode, vnode_t **vpp, \
+ cred_t *cr, int flag); \
+ int (*femop_remove)(femarg_t *vf, char *nm, cred_t *cr); \
+ int (*femop_link)(femarg_t *vf, vnode_t *svp, char *tnm, \
+ cred_t *cr); \
+ int (*femop_rename)(femarg_t *vf, char *snm, vnode_t *tdvp, \
+ char *tnm, cred_t *cr); \
+ int (*femop_mkdir)(femarg_t *vf, char *dirname, vattr_t *vap, \
+ vnode_t **vpp, cred_t *cr); \
+ int (*femop_rmdir)(femarg_t *vf, char *nm, vnode_t *cdir, \
+ cred_t *cr); \
+ int (*femop_readdir)(femarg_t *vf, uio_t *uiop, cred_t *cr, \
+ int *eofp); \
+ int (*femop_symlink)(femarg_t *vf, char *linkname, \
+ vattr_t *vap, char *target, cred_t *cr); \
+ int (*femop_readlink)(femarg_t *vf, uio_t *uiop, cred_t *cr); \
+ int (*femop_fsync)(femarg_t *vf, int syncflag, cred_t *cr); \
+ void (*femop_inactive)(femarg_t *vf, cred_t *cr); \
+ int (*femop_fid)(femarg_t *vf, fid_t *fidp); \
+ int (*femop_rwlock)(femarg_t *vf, int write_lock, \
+ caller_context_t *ct); \
+ void (*femop_rwunlock)(femarg_t *vf, int write_lock, \
+ caller_context_t *ct); \
+ int (*femop_seek)(femarg_t *vf, offset_t ooff, \
+ offset_t *noffp); \
+ int (*femop_cmp)(femarg_t *vf, vnode_t *vp2); \
+ int (*femop_frlock)(femarg_t *vf, int cmd, struct flock64 *bfp, \
+ int flag, offset_t offset, \
+ struct flk_callback *flk_cbp, cred_t *cr); \
+ int (*femop_space)(femarg_t *vf, int cmd, struct flock64 *bfp, \
+ int flag, offset_t offset, cred_t *cr, \
+ caller_context_t *ct); \
+ int (*femop_realvp)(femarg_t *vf, vnode_t **vpp); \
+ int (*femop_getpage)(femarg_t *vf, offset_t off, size_t len, \
+ uint_t *protp, struct page **plarr, \
+ size_t plsz, struct seg *seg, caddr_t addr, \
+ enum seg_rw rw, cred_t *cr); \
+ int (*femop_putpage)(femarg_t *vf, offset_t off, size_t len, \
+ int flags, cred_t *cr); \
+ int (*femop_map)(femarg_t *vf, offset_t off, struct as *as, \
+ caddr_t *addrp, size_t len, uchar_t prot, \
+ uchar_t maxprot, uint_t flags, cred_t *cr); \
+ int (*femop_addmap)(femarg_t *vf, offset_t off, struct as *as, \
+ caddr_t addr, size_t len, uchar_t prot, \
+ uchar_t maxprot, uint_t flags, cred_t *cr); \
+ int (*femop_delmap)(femarg_t *vf, offset_t off, struct as *as, \
+ caddr_t addr, size_t len, uint_t prot, \
+ uint_t maxprot, uint_t flags, cred_t *cr); \
+ int (*femop_poll)(femarg_t *vf, short events, int anyyet, \
+ short *reventsp, struct pollhead **phpp); \
+ int (*femop_dump)(femarg_t *vf, caddr_t addr, int lbdn, \
+ int dblks); \
+ int (*femop_pathconf)(femarg_t *vf, int cmd, ulong_t *valp, \
+ cred_t *cr); \
+ int (*femop_pageio)(femarg_t *vf, struct page *pp, \
+ u_offset_t io_off, size_t io_len, int flags, \
+ cred_t *cr); \
+ int (*femop_dumpctl)(femarg_t *vf, int action, int *blkp); \
+ void (*femop_dispose)(femarg_t *vf, struct page *pp, int flag, \
+ int dn, cred_t *cr); \
+ int (*femop_setsecattr)(femarg_t *vf, vsecattr_t *vsap, \
+ int flag, cred_t *cr); \
+ int (*femop_getsecattr)(femarg_t *vf, vsecattr_t *vsap, \
+ int flag, cred_t *cr); \
+ int (*femop_shrlock)(femarg_t *vf, int cmd, \
+ struct shrlock *shr, int flag, cred_t *cr); \
+ int (*femop_vnevent)(femarg_t *vf, vnevent_t vnevent) /* NB: No ";" */
+
struct fem {
const char *name;
const struct fs_operation_def *templ;
- int (*vsop_open)(femarg_t *vf, int mode, cred_t *cr);
- int (*vsop_close)(femarg_t *vf, int flag, int count,
- offset_t offset, cred_t *cr);
- int (*vsop_read)(femarg_t *vf, uio_t *uiop, int ioflag, cred_t *cr,
- struct caller_context *ct);
- int (*vsop_write)(femarg_t *vf, uio_t *uiop, int ioflag,
- cred_t *cr, struct caller_context *ct);
- int (*vsop_ioctl)(femarg_t *vf, int cmd, intptr_t arg, int flag,
- cred_t *cr, int *rvalp);
- int (*vsop_setfl)(femarg_t *vf, int oflags, int nflags, cred_t *cr);
- int (*vsop_getattr)(femarg_t *vf, vattr_t *vap, int flags,
- cred_t *cr);
- int (*vsop_setattr)(femarg_t *vf, vattr_t *vap, int flags,
- cred_t *cr, caller_context_t *ct);
- int (*vsop_access)(femarg_t *vf, int mode, int flags, cred_t *cr);
- int (*vsop_lookup)(femarg_t *vf, char *nm, vnode_t **vpp,
- pathname_t *pnp, int flags, vnode_t *rdir,
- cred_t *cr);
- int (*vsop_create)(femarg_t *vf, char *name, vattr_t *vap,
- vcexcl_t excl, int mode, vnode_t **vpp, cred_t *cr,
- int flag);
- int (*vsop_remove)(femarg_t *vf, char *nm, cred_t *cr);
- int (*vsop_link)(femarg_t *vf, vnode_t *svp, char *tnm, cred_t *cr);
- int (*vsop_rename)(femarg_t *vf, char *snm, vnode_t *tdvp,
- char *tnm, cred_t *cr);
- int (*vsop_mkdir)(femarg_t *vf, char *dirname, vattr_t *vap,
- vnode_t **vpp, cred_t *cr);
- int (*vsop_rmdir)(femarg_t *vf, char *nm, vnode_t *cdir,
- cred_t *cr);
- int (*vsop_readdir)(femarg_t *vf, uio_t *uiop, cred_t *cr,
- int *eofp);
- int (*vsop_symlink)(femarg_t *vf, char *linkname, vattr_t *vap,
- char *target, cred_t *cr);
- int (*vsop_readlink)(femarg_t *vf, uio_t *uiop, cred_t *cr);
- int (*vsop_fsync)(femarg_t *vf, int syncflag, cred_t *cr);
- void (*vsop_inactive)(femarg_t *vf, cred_t *cr);
- int (*vsop_fid)(femarg_t *vf, fid_t *fidp);
- int (*vsop_rwlock)(femarg_t *vf, int write_lock,
- caller_context_t *ct);
- void (*vsop_rwunlock)(femarg_t *vf, int write_lock,
- caller_context_t *ct);
- int (*vsop_seek)(femarg_t *vf, offset_t ooff, offset_t *noffp);
- int (*vsop_cmp)(femarg_t *vf, vnode_t *vp2);
- int (*vsop_frlock)(femarg_t *vf, int cmd, struct flock64 *bfp,
- int flag, offset_t offset,
- struct flk_callback *flk_cbp, cred_t *cr);
- int (*vsop_space)(femarg_t *vf, int cmd, struct flock64 *bfp,
- int flag, offset_t offset, cred_t *cr,
- caller_context_t *ct);
- int (*vsop_realvp)(femarg_t *vf, vnode_t **vpp);
- int (*vsop_getpage)(femarg_t *vf, offset_t off, size_t len,
- uint_t *protp, struct page **plarr, size_t plsz,
- struct seg *seg, caddr_t addr, enum seg_rw rw,
- cred_t *cr);
- int (*vsop_putpage)(femarg_t *vf, offset_t off, size_t len,
- int flags, cred_t *cr);
- int (*vsop_map)(femarg_t *vf, offset_t off, struct as *as,
- caddr_t *addrp, size_t len, uchar_t prot,
- uchar_t maxprot, uint_t flags, cred_t *cr);
- int (*vsop_addmap)(femarg_t *vf, offset_t off, struct as *as,
- caddr_t addr, size_t len, uchar_t prot,
- uchar_t maxprot, uint_t flags, cred_t *cr);
- int (*vsop_delmap)(femarg_t *vf, offset_t off, struct as *as,
- caddr_t addr, size_t len, uint_t prot,
- uint_t maxprot, uint_t flags, cred_t *cr);
- int (*vsop_poll)(femarg_t *vf, short events, int anyyet,
- short *reventsp, struct pollhead **phpp);
- int (*vsop_dump)(femarg_t *vf, caddr_t addr, int lbdn, int dblks);
- int (*vsop_pathconf)(femarg_t *vf, int cmd, ulong_t *valp,
- cred_t *cr);
- int (*vsop_pageio)(femarg_t *vf, struct page *pp,
- u_offset_t io_off, size_t io_len, int flags,
- cred_t *cr);
- int (*vsop_dumpctl)(femarg_t *vf, int action, int *blkp);
- void (*vsop_dispose)(femarg_t *vf, struct page *pp, int flag,
- int dn, cred_t *cr);
- int (*vsop_setsecattr)(femarg_t *vf, vsecattr_t *vsap, int flag,
- cred_t *cr);
- int (*vsop_getsecattr)(femarg_t *vf, vsecattr_t *vsap, int flag,
- cred_t *cr);
- int (*vsop_shrlock)(femarg_t *vf, int cmd, struct shrlock *shr,
- int flag, cred_t *cr);
- int (*vsop_vnevent)(femarg_t *vf, vnevent_t vnevent);
+ FEM_OPS; /* Signatures of all FEM operations (femops) */
};
+/*
+ * FSEM_OPS defines all the FSEM operations. It is used to define
+ * the fsem structure (below) and the fs_func_p union (vfs_opreg.h).
+ */
+#define FSEM_OPS \
+ int (*fsemop_mount)(fsemarg_t *vf, vnode_t *mvp, \
+ struct mounta *uap, cred_t *cr); \
+ int (*fsemop_unmount)(fsemarg_t *vf, int flag, cred_t *cr); \
+ int (*fsemop_root)(fsemarg_t *vf, vnode_t **vpp); \
+ int (*fsemop_statvfs)(fsemarg_t *vf, statvfs64_t *sp); \
+ int (*fsemop_sync)(fsemarg_t *vf, short flag, cred_t *cr); \
+ int (*fsemop_vget)(fsemarg_t *vf, vnode_t **vpp, fid_t *fidp); \
+ int (*fsemop_mountroot)(fsemarg_t *vf, \
+ enum whymountroot reason); \
+ void (*fsemop_freevfs)(fsemarg_t *vf); \
+ int (*fsemop_vnstate)(fsemarg_t *vf, vnode_t *vp, \
+ vntrans_t nstate) /* NB: No ";" */
+
struct fsem {
const char *name;
const struct fs_operation_def *templ;
- int (*vfsop_mount)(fsemarg_t *vf, vnode_t *mvp, struct mounta *uap,
- cred_t *cr);
- int (*vfsop_unmount)(fsemarg_t *vf, int flag, cred_t *cr);
- int (*vfsop_root)(fsemarg_t *vf, vnode_t **vpp);
- int (*vfsop_statvfs)(fsemarg_t *vf, statvfs64_t *sp);
- int (*vfsop_sync)(fsemarg_t *vf, short flag, cred_t *cr);
- int (*vfsop_vget)(fsemarg_t *vf, vnode_t **vpp, fid_t *fidp);
- int (*vfsop_mountroot)(fsemarg_t *vf, enum whymountroot reason);
- void (*vfsop_freevfs)(fsemarg_t *vf);
- int (*vfsop_vnstate)(fsemarg_t *vf, vnode_t *vp, vntrans_t nstate);
+ FSEM_OPS; /* Signatures of all FSEM operations (fsemops) */
};
extern int vnext_open(femarg_t *vf, int mode, cred_t *cr);
@@ -357,6 +378,7 @@ extern int fsem_uninstall(struct vfs *v, fsem_t *mon, void *arg);
extern vfsops_t *fsem_getvfsops(struct vfs *v);
extern void fsem_setvfsops(struct vfs *v, struct vfsops *nops);
+#endif /* _KERNEL */
#ifdef __cplusplus
}
diff --git a/usr/src/uts/common/sys/fs/sdev_impl.h b/usr/src/uts/common/sys/fs/sdev_impl.h
index 4083fd382d..281bc2faf7 100644
--- a/usr/src/uts/common/sys/fs/sdev_impl.h
+++ b/usr/src/uts/common/sys/fs/sdev_impl.h
@@ -35,6 +35,7 @@ extern "C" {
#include <rpc/rpc.h>
#include <sys/dirent.h>
#include <sys/vfs.h>
+#include <sys/vfs_opreg.h>
#include <sys/list.h>
#include <sys/nvpair.h>
diff --git a/usr/src/uts/common/sys/gfs.h b/usr/src/uts/common/sys/gfs.h
index 65a379eeb9..fd2abc1326 100644
--- a/usr/src/uts/common/sys/gfs.h
+++ b/usr/src/uts/common/sys/gfs.h
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -31,6 +30,7 @@
#include <sys/types.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/mutex.h>
#include <sys/dirent.h>
#include <sys/uio.h>
diff --git a/usr/src/uts/common/sys/vfs.h b/usr/src/uts/common/sys/vfs.h
index 66fc2f2c2a..0834cf1f84 100644
--- a/usr/src/uts/common/sys/vfs.h
+++ b/usr/src/uts/common/sys/vfs.h
@@ -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.
*/
@@ -310,20 +310,26 @@ enum vntrans {
};
typedef enum vntrans vntrans_t;
+/*
+ * VFS_OPS defines all the vfs operations. It is used to define
+ * the vfsops structure (below) and the fs_func_p union (vfs_opreg.h).
+ */
+#define VFS_OPS \
+ int (*vfs_mount)(vfs_t *, vnode_t *, struct mounta *, cred_t *); \
+ int (*vfs_unmount)(vfs_t *, int, cred_t *); \
+ int (*vfs_root)(vfs_t *, vnode_t **); \
+ int (*vfs_statvfs)(vfs_t *, statvfs64_t *); \
+ int (*vfs_sync)(vfs_t *, short, cred_t *); \
+ int (*vfs_vget)(vfs_t *, vnode_t **, fid_t *); \
+ int (*vfs_mountroot)(vfs_t *, enum whymountroot); \
+ void (*vfs_freevfs)(vfs_t *); \
+ int (*vfs_vnstate)(vfs_t *, vnode_t *, vntrans_t) /* NB: No ";" */
/*
* Operations supported on virtual file system.
*/
struct vfsops {
- int (*vfs_mount)(vfs_t *, vnode_t *, struct mounta *, cred_t *);
- int (*vfs_unmount)(vfs_t *, int, cred_t *);
- int (*vfs_root)(vfs_t *, vnode_t **);
- int (*vfs_statvfs)(vfs_t *, statvfs64_t *);
- int (*vfs_sync)(vfs_t *, short, cred_t *);
- int (*vfs_vget)(vfs_t *, vnode_t **, fid_t *);
- int (*vfs_mountroot)(vfs_t *, enum whymountroot);
- int (*vfs_freevfs)(vfs_t *);
- int (*vfs_vnstate)(vfs_t *, vnode_t *, vntrans_t);
+ VFS_OPS; /* Signature of all vfs operations (vfsops) */
};
extern int fsop_mount(vfs_t *, vnode_t *, struct mounta *, cred_t *);
@@ -391,17 +397,6 @@ enum {
};
/*
- * Generic operations vector types (used for vfs/vnode ops registration).
- */
-
-extern int fs_default(); /* "default" function placeholder */
-extern int fs_error(); /* "error" function placeholder */
-
-int fs_build_vector(void *vector, int *unused_ops,
- const fs_operation_trans_def_t *translation,
- const fs_operation_def_t *operations);
-
-/*
* flags for vfssw and vfsdef
*/
#define VSW_HASPROTO 0x01 /* struct has a mount options prototype */
@@ -421,8 +416,6 @@ struct umounta;
struct statvfsa;
struct fstatvfsa;
-int vfs_setfsops(int, const fs_operation_def_t *, vfsops_t **);
-int vfs_makefsops(const fs_operation_def_t *, vfsops_t **);
void vfs_freevfsops(vfsops_t *);
int vfs_freevfsops_by_type(int);
void vfs_setops(vfs_t *, vfsops_t *);
diff --git a/usr/src/uts/common/sys/vfs_opreg.h b/usr/src/uts/common/sys/vfs_opreg.h
new file mode 100644
index 0000000000..c9d4d9f699
--- /dev/null
+++ b/usr/src/uts/common/sys/vfs_opreg.h
@@ -0,0 +1,116 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_VFS_OPREG_H
+#define _SYS_VFS_OPREG_H
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+#include <sys/vfs.h>
+#include <sys/fem.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+
+/*
+ * The following union allows us to use C99's "designated initializer"
+ * feature so that we can have strong typechecking for the operations
+ * used in the the fs_operation_def structures.
+ */
+
+typedef union fs_func {
+ fs_generic_func_p fs_generic; /* Generic function signature */
+ int (*error)(); /* Signature of error function */
+ VFS_OPS; /* Signatures of all vfs operations (vfsops) */
+ VNODE_OPS; /* Signatures of all vnode operations (vops) */
+ FEM_OPS; /* Signatures of all FEM operations (femops) */
+ FSEM_OPS; /* Signatures of all FSEM ops (fsemops) */
+} fs_func_p;
+
+/*
+ * File systems use arrays of fs_operation_def structures to form
+ * name/value pairs of operations. These arrays get passed to:
+ *
+ * - vn_make_ops() to create vnodeops
+ * - vfs_makefsops()/vfs_setfsops() to create vfsops.
+ */
+typedef struct fs_operation_def {
+ char *name; /* name of operation (NULL at end) */
+ fs_func_p func; /* function implementing operation */
+} fs_operation_def_t;
+
+/*
+ * The operation registration mechanism uses two master tables of operations:
+ * one for vnode operations (vn_ops_table[]) and one for vfs operations
+ * (vfs_ops_table[]). These tables are arrays of fs_operation_trans_def
+ * structures. They contain all of the information necessary for the system
+ * to populate an operations structure (e.g., vnodeops, vfsops).
+ *
+ * File systems call registration routines (vfs_setfsops(), vfs_makefsops(),
+ * and vn_make_ops()) and pass in their operations specification tables
+ * (arrays of fs_operation_def structures). These routines use the master
+ * table(s) of operations to build a vnodeops or vfsops structure.
+ */
+typedef struct fs_operation_trans_def {
+ char *name; /* name of operation (NULL at end) */
+ int offset; /* byte offset within ops vector */
+ fs_generic_func_p defaultFunc; /* default function */
+ fs_generic_func_p errorFunc; /* error function */
+} fs_operation_trans_def_t;
+
+/*
+ * Generic operations vector types (used for vfs/vnode ops registration).
+ */
+
+extern int fs_default(); /* "default" function placeholder */
+extern int fs_error(); /* "error" function placeholder */
+
+int fs_build_vector(void *vector, int *unused_ops,
+ const fs_operation_trans_def_t *translation,
+ const fs_operation_def_t *operations);
+
+/*
+ * Public operations.
+ */
+
+int vn_make_ops(const char *, const struct fs_operation_def *,
+ vnodeops_t **);
+void vn_freevnodeops(vnodeops_t *);
+
+int vfs_setfsops(int, const fs_operation_def_t *, vfsops_t **);
+int vfs_makefsops(const fs_operation_def_t *, vfsops_t **);
+void vfs_freevfsops(vfsops_t *);
+int vfs_freevfsops_by_type(int);
+
+#endif /* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_VFS_OPREG_H */
diff --git a/usr/src/uts/common/sys/vnode.h b/usr/src/uts/common/sys/vnode.h
index 0e69840c1a..d2494e013e 100644
--- a/usr/src/uts/common/sys/vnode.h
+++ b/usr/src/uts/common/sys/vnode.h
@@ -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,41 +59,6 @@
extern "C" {
#endif
-
-typedef int (*fs_generic_func_p) ();
-
-/*
- * File systems use arrays of fs_operation_def structures to form
- * name/value pairs of operations. These arrays get passed to:
- *
- * - vn_make_ops() to create vnodeops
- * - vfs_makefsops()/vfs_setfsops() to create vfsops.
- */
-typedef struct fs_operation_def {
- char *name; /* name of operation (NULL at end) */
- fs_generic_func_p func; /* function implementing operation */
-} fs_operation_def_t;
-
-/*
- * The operation registration mechanism uses two master tables of operations:
- * one for vnode operations (vn_ops_table[]) and one for vfs operations
- * (vfs_ops_table[]). These tables are arrays of fs_operation_trans_def
- * structures. They contain all of the information necessary for the system
- * to populate an operations structure (e.g., vnodeops, vfsops).
- *
- * File systems call registration routines (vfs_setfsops(), vfs_makefsops(),
- * and vn_make_ops()) and pass in their operations specification tables
- * (arrays of fs_operation_def structures). These routines use the master
- * table(s) of operations to build a vnodeops or vfsops structure.
- */
-typedef struct fs_operation_trans_def {
- char *name; /* name of operation (NULL at end) */
- int offset; /* byte offset within ops vector */
- fs_generic_func_p defaultFunc; /* default function */
- fs_generic_func_p errorFunc; /* error function */
-} fs_operation_trans_def_t;
-
-
/*
* Statistics for all vnode operations.
* All operations record number of ops (since boot/mount/zero'ed).
@@ -562,74 +527,98 @@ struct seg;
struct as;
struct pollhead;
+#ifdef _KERNEL
+
/*
- * Operations on vnodes. Note: File systems should never operate directly
+ * VNODE_OPS defines all the vnode operations. It is used to define
+ * the vnodeops structure (below) and the fs_func_p union (vfs_opreg.h).
+ */
+#define VNODE_OPS \
+ int (*vop_open)(vnode_t **, int, cred_t *); \
+ int (*vop_close)(vnode_t *, int, int, offset_t, cred_t *); \
+ int (*vop_read)(vnode_t *, uio_t *, int, cred_t *, \
+ caller_context_t *); \
+ int (*vop_write)(vnode_t *, uio_t *, int, cred_t *, \
+ caller_context_t *); \
+ int (*vop_ioctl)(vnode_t *, int, intptr_t, int, cred_t *, \
+ int *); \
+ int (*vop_setfl)(vnode_t *, int, int, cred_t *); \
+ int (*vop_getattr)(vnode_t *, vattr_t *, int, cred_t *); \
+ int (*vop_setattr)(vnode_t *, vattr_t *, int, cred_t *, \
+ caller_context_t *); \
+ int (*vop_access)(vnode_t *, int, int, cred_t *); \
+ int (*vop_lookup)(vnode_t *, char *, vnode_t **, \
+ struct pathname *, \
+ int, vnode_t *, cred_t *); \
+ int (*vop_create)(vnode_t *, char *, vattr_t *, vcexcl_t, \
+ int, vnode_t **, cred_t *, int); \
+ int (*vop_remove)(vnode_t *, char *, cred_t *); \
+ int (*vop_link)(vnode_t *, vnode_t *, char *, cred_t *); \
+ int (*vop_rename)(vnode_t *, char *, vnode_t *, char *, \
+ cred_t *); \
+ int (*vop_mkdir)(vnode_t *, char *, vattr_t *, vnode_t **, \
+ cred_t *); \
+ int (*vop_rmdir)(vnode_t *, char *, vnode_t *, cred_t *); \
+ int (*vop_readdir)(vnode_t *, uio_t *, cred_t *, int *); \
+ int (*vop_symlink)(vnode_t *, char *, vattr_t *, char *, \
+ cred_t *); \
+ int (*vop_readlink)(vnode_t *, uio_t *, cred_t *); \
+ int (*vop_fsync)(vnode_t *, int, cred_t *); \
+ void (*vop_inactive)(vnode_t *, cred_t *); \
+ int (*vop_fid)(vnode_t *, struct fid *); \
+ int (*vop_rwlock)(vnode_t *, int, caller_context_t *); \
+ void (*vop_rwunlock)(vnode_t *, int, caller_context_t *); \
+ int (*vop_seek)(vnode_t *, offset_t, offset_t *); \
+ int (*vop_cmp)(vnode_t *, vnode_t *); \
+ int (*vop_frlock)(vnode_t *, int, struct flock64 *, \
+ int, offset_t, \
+ struct flk_callback *, cred_t *); \
+ int (*vop_space)(vnode_t *, int, struct flock64 *, \
+ int, offset_t, \
+ cred_t *, caller_context_t *); \
+ int (*vop_realvp)(vnode_t *, vnode_t **); \
+ int (*vop_getpage)(vnode_t *, offset_t, size_t, uint_t *, \
+ struct page **, size_t, struct seg *, \
+ caddr_t, enum seg_rw, cred_t *); \
+ int (*vop_putpage)(vnode_t *, offset_t, size_t, \
+ int, cred_t *); \
+ int (*vop_map)(vnode_t *, offset_t, struct as *, \
+ caddr_t *, size_t, \
+ uchar_t, uchar_t, uint_t, cred_t *); \
+ int (*vop_addmap)(vnode_t *, offset_t, struct as *, \
+ caddr_t, size_t, \
+ uchar_t, uchar_t, uint_t, cred_t *); \
+ int (*vop_delmap)(vnode_t *, offset_t, struct as *, \
+ caddr_t, size_t, \
+ uint_t, uint_t, uint_t, cred_t *); \
+ int (*vop_poll)(vnode_t *, short, int, short *, \
+ struct pollhead **); \
+ int (*vop_dump)(vnode_t *, caddr_t, int, int); \
+ int (*vop_pathconf)(vnode_t *, int, ulong_t *, cred_t *); \
+ int (*vop_pageio)(vnode_t *, struct page *, \
+ u_offset_t, size_t, int, cred_t *); \
+ int (*vop_dumpctl)(vnode_t *, int, int *); \
+ void (*vop_dispose)(vnode_t *, struct page *, \
+ int, int, cred_t *); \
+ int (*vop_setsecattr)(vnode_t *, vsecattr_t *, \
+ int, cred_t *); \
+ int (*vop_getsecattr)(vnode_t *, vsecattr_t *, \
+ int, cred_t *); \
+ int (*vop_shrlock)(vnode_t *, int, struct shrlock *, \
+ int, cred_t *); \
+ int (*vop_vnevent)(vnode_t *, vnevent_t) /* NB: No ";" */
+
+/*
+ * Operations on vnodes. Note: File systems must never operate directly
* on a 'vnodeops' structure -- it WILL change in future releases! They
- * should use vn_make_ops() to create the structure.
+ * must use vn_make_ops() to create the structure.
*/
typedef struct vnodeops {
const char *vnop_name;
- int (*vop_open)(vnode_t **, int, cred_t *);
- int (*vop_close)(vnode_t *, int, int, offset_t, cred_t *);
- int (*vop_read)(vnode_t *, uio_t *, int, cred_t *,
- caller_context_t *);
- int (*vop_write)(vnode_t *, uio_t *, int, cred_t *,
- caller_context_t *);
- int (*vop_ioctl)(vnode_t *, int, intptr_t, int, cred_t *, int *);
- int (*vop_setfl)(vnode_t *, int, int, cred_t *);
- int (*vop_getattr)(vnode_t *, vattr_t *, int, cred_t *);
- int (*vop_setattr)(vnode_t *, vattr_t *, int, cred_t *,
- caller_context_t *);
- int (*vop_access)(vnode_t *, int, int, cred_t *);
- int (*vop_lookup)(vnode_t *, char *, vnode_t **, struct pathname *,
- int, vnode_t *, cred_t *);
- int (*vop_create)(vnode_t *, char *, vattr_t *, vcexcl_t, int,
- vnode_t **, cred_t *, int);
- int (*vop_remove)(vnode_t *, char *, cred_t *);
- int (*vop_link)(vnode_t *, vnode_t *, char *, cred_t *);
- int (*vop_rename)(vnode_t *, char *, vnode_t *, char *, cred_t *);
- int (*vop_mkdir)(vnode_t *, char *, vattr_t *, vnode_t **,
- cred_t *);
- int (*vop_rmdir)(vnode_t *, char *, vnode_t *, cred_t *);
- int (*vop_readdir)(vnode_t *, uio_t *, cred_t *, int *);
- int (*vop_symlink)(vnode_t *, char *, vattr_t *, char *, cred_t *);
- int (*vop_readlink)(vnode_t *, uio_t *, cred_t *);
- int (*vop_fsync)(vnode_t *, int, cred_t *);
- void (*vop_inactive)(vnode_t *, cred_t *);
- int (*vop_fid)(vnode_t *, struct fid *);
- int (*vop_rwlock)(vnode_t *, int, caller_context_t *);
- void (*vop_rwunlock)(vnode_t *, int, caller_context_t *);
- int (*vop_seek)(vnode_t *, offset_t, offset_t *);
- int (*vop_cmp)(vnode_t *, vnode_t *);
- int (*vop_frlock)(vnode_t *, int, struct flock64 *, int, offset_t,
- struct flk_callback *, cred_t *);
- int (*vop_space)(vnode_t *, int, struct flock64 *, int, offset_t,
- cred_t *, caller_context_t *);
- int (*vop_realvp)(vnode_t *, vnode_t **);
- int (*vop_getpage)(vnode_t *, offset_t, size_t, uint_t *,
- struct page **, size_t, struct seg *,
- caddr_t, enum seg_rw, cred_t *);
- int (*vop_putpage)(vnode_t *, offset_t, size_t, int, cred_t *);
- int (*vop_map)(vnode_t *, offset_t, struct as *, caddr_t *, size_t,
- uchar_t, uchar_t, uint_t, cred_t *);
- int (*vop_addmap)(vnode_t *, offset_t, struct as *, caddr_t, size_t,
- uchar_t, uchar_t, uint_t, cred_t *);
- int (*vop_delmap)(vnode_t *, offset_t, struct as *, caddr_t, size_t,
- uint_t, uint_t, uint_t, cred_t *);
- int (*vop_poll)(vnode_t *, short, int, short *, struct pollhead **);
- int (*vop_dump)(vnode_t *, caddr_t, int, int);
- int (*vop_pathconf)(vnode_t *, int, ulong_t *, cred_t *);
- int (*vop_pageio)(vnode_t *, struct page *, u_offset_t, size_t,
- int, cred_t *);
- int (*vop_dumpctl)(vnode_t *, int, int *);
- void (*vop_dispose)(vnode_t *, struct page *, int, int, cred_t *);
- int (*vop_setsecattr)(vnode_t *, vsecattr_t *, int, cred_t *);
- int (*vop_getsecattr)(vnode_t *, vsecattr_t *, int, cred_t *);
- int (*vop_shrlock)(vnode_t *, int, struct shrlock *, int, cred_t *);
- int (*vop_vnevent)(vnode_t *, vnevent_t);
+ VNODE_OPS; /* Signatures of all vnode operations (vops) */
} vnodeops_t;
-#ifdef _KERNEL
+typedef int (*fs_generic_func_p) (); /* Generic vop/vfsop/femop/fsemop ptr */
extern int fop_open(vnode_t **, int, cred_t *);
extern int fop_close(vnode_t *, int, int, offset_t, cred_t *);
@@ -876,7 +865,6 @@ struct vfs *vn_mountedvfs(vnode_t *);
void vn_create_cache(void);
void vn_destroy_cache(void);
-int vn_make_ops(const char *, const fs_operation_def_t *, vnodeops_t **);
void vn_freevnodeops(vnodeops_t *);
int vn_open(char *pnamep, enum uio_seg seg, int filemode, int createmode,
diff --git a/usr/src/uts/common/vm/page_retire.c b/usr/src/uts/common/vm/page_retire.c
index 3259963fe0..93f0874585 100644
--- a/usr/src/uts/common/vm/page_retire.c
+++ b/usr/src/uts/common/vm/page_retire.c
@@ -130,6 +130,7 @@
#include <sys/systm.h>
#include <sys/mman.h>
#include <sys/vnode.h>
+#include <sys/vfs_opreg.h>
#include <sys/cmn_err.h>
#include <sys/ksynch.h>
#include <sys/thread.h>
@@ -851,7 +852,9 @@ page_retire_decr_pend_count(void)
void
page_retire_init(void)
{
- const fs_operation_def_t retired_vnodeops_template[] = {NULL, NULL};
+ const fs_operation_def_t retired_vnodeops_template[] = {
+ { NULL, NULL }
+ };
struct vnodeops *vops;
kstat_t *ksp;