diff usr/src/uts/common/fs/zfs/zfs_vfsops.c @ 3898:c788126f2a20

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
author rsb
date Mon, 26 Mar 2007 17:41:06 -0700
parents c19b22f347d6
children f6891a60bd72
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c	Mon Mar 26 12:01:20 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c	Mon Mar 26 17:41:06 2007 -0700
@@ -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_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
 };
 
 /*