diff options
author | rsb <none@none> | 2007-03-26 17:41:06 -0700 |
---|---|---|
committer | rsb <none@none> | 2007-03-26 17:41:06 -0700 |
commit | aa59c4cb15a6ac5d4e585dadf7a055b580abf579 (patch) | |
tree | 67105846ea7ea656699224cf37f3cf859c00cd6a /usr/src/uts/common/fs/mntfs | |
parent | af2c4821c0a23e873f2a63bca4145080aa2183e3 (diff) | |
download | illumos-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/mntfs')
-rw-r--r-- | usr/src/uts/common/fs/mntfs/mntvfsops.c | 13 | ||||
-rw-r--r-- | usr/src/uts/common/fs/mntfs/mntvnops.c | 34 |
2 files changed, 24 insertions, 23 deletions
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 }; |