summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-03-24 07:29:23 +0000
committerjeff <jeff@FreeBSD.org>2005-03-24 07:29:23 +0000
commitcc2d1630caa5935895b50ba56327dd96d54b083b (patch)
tree4c4a1f45168325134339eb981b970ca82b6082e8
parent6d5bd3a0a22ea80efd9fd6571b4f991947efc3c6 (diff)
downloadFreeBSD-src-cc2d1630caa5935895b50ba56327dd96d54b083b.zip
FreeBSD-src-cc2d1630caa5935895b50ba56327dd96d54b083b.tar.gz
- Add a 'flags' parameter to VFS_ROOT(). This is intended to allow
lookup to do shared locks on the root. Filesystems are free to ignore flags and instead acquire an exclusive lock if they do not support shared locks. Sponsored by: Isilon Systems, Inc.
-rw-r--r--sys/sys/mount.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/sys/mount.h b/sys/sys/mount.h
index 3c4cf2e..e9069ac8 100644
--- a/sys/sys/mount.h
+++ b/sys/sys/mount.h
@@ -466,7 +466,8 @@ struct mntarg;
typedef int vfs_cmount_t(struct mntarg *ma, void *data, int flags, struct thread *td);
typedef int vfs_unmount_t(struct mount *mp, int mntflags, struct thread *td);
-typedef int vfs_root_t(struct mount *mp, struct vnode **vpp, struct thread *td);
+typedef int vfs_root_t(struct mount *mp, int flags, struct vnode **vpp,
+ struct thread *td);
typedef int vfs_quotactl_t(struct mount *mp, int cmds, uid_t uid,
caddr_t arg, struct thread *td);
typedef int vfs_statfs_t(struct mount *mp, struct statfs *sbp,
@@ -509,7 +510,8 @@ vfs_statfs_t __vfs_statfs;
#define VFS_MOUNT(MP, P) (*(MP)->mnt_op->vfs_mount)(MP, P)
#define VFS_UNMOUNT(MP, FORCE, P) (*(MP)->mnt_op->vfs_unmount)(MP, FORCE, P)
-#define VFS_ROOT(MP, VPP, P) (*(MP)->mnt_op->vfs_root)(MP, VPP, P)
+#define VFS_ROOT(MP, FLAGS, VPP, P) \
+ (*(MP)->mnt_op->vfs_root)(MP, FLAGS, VPP, P)
#define VFS_QUOTACTL(MP,C,U,A,P) (*(MP)->mnt_op->vfs_quotactl)(MP, C, U, A, P)
#define VFS_STATFS(MP, SBP, P) __vfs_statfs((MP), (SBP), (P))
#define VFS_SYNC(MP, WAIT, P) (*(MP)->mnt_op->vfs_sync)(MP, WAIT, P)
OpenPOWER on IntegriCloud