summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/pcfs/pc_vnops.c
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/fs/pcfs/pc_vnops.c
parentaf2c4821c0a23e873f2a63bca4145080aa2183e3 (diff)
downloadillumos-gate-aa59c4cb15a6ac5d4e585dadf7a055b580abf579.tar.gz
PSARC/2007/124 Strong Type-Checking for VFS Operation Registration Mechanism
6505923 Need better type checking for vnodeops 6531594 lxpr_readlink() is missing the "cred_t *cr" arg 6532559 vfs_strayops does not use the vnode/vfs operation registration mechanism
Diffstat (limited to 'usr/src/uts/common/fs/pcfs/pc_vnops.c')
-rw-r--r--usr/src/uts/common/fs/pcfs/pc_vnops.c81
1 files changed, 41 insertions, 40 deletions
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
};