From de2973eb6ee310d016fd88c4fb101afa7d85b6a4 Mon Sep 17 00:00:00 2001 From: pjd Date: Wed, 2 May 2007 01:03:10 +0000 Subject: Share-lock a vnode where possible. --- sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c | 4 ++-- sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c | 2 +- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c | 2 +- sys/compat/opensolaris/kern/opensolaris_kobj.c | 4 ++-- sys/compat/opensolaris/kern/opensolaris_vfs.c | 2 +- sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c b/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c index 4db68f4..16a5800 100644 --- a/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c +++ b/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c @@ -123,7 +123,7 @@ kobj_get_filesize_vnode(struct _buf *file, uint64_t *size) struct vattr va; int error; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); error = VOP_GETATTR(vp, &va, td->td_ucred, td); VOP_UNLOCK(vp, 0, td); if (error == 0) @@ -176,7 +176,7 @@ kobj_read_file_vnode(struct _buf *file, char *buf, unsigned size, unsigned off) auio.uio_resid = size; auio.uio_td = td; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); error = VOP_READ(vp, &auio, IO_UNIT | IO_SYNC, td->td_ucred); VOP_UNLOCK(vp, 0, td); return (error != 0 ? -1 : size - auio.uio_resid); diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c b/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c index ef184b4..e3325ae 100644 --- a/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c +++ b/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c @@ -187,7 +187,7 @@ domount(kthread_t *td, vnode_t *vp, const char *fstype, char *fspath, /* * Allocate and initialize the filesystem. */ - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); mp = vfs_mount_alloc(vp, vfsp, fspath, td); VOP_UNLOCK(vp, 0, td); diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c index d271c8c..7a50389 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c @@ -934,7 +934,7 @@ zfsctl_traverse_begin(vnode_t **vpp, kthread_t *td) return (ENOENT); err = traverse(vpp); if (err == 0) - vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(*vpp, LK_SHARED | LK_RETRY, td); return (err); } diff --git a/sys/compat/opensolaris/kern/opensolaris_kobj.c b/sys/compat/opensolaris/kern/opensolaris_kobj.c index 4db68f4..16a5800 100644 --- a/sys/compat/opensolaris/kern/opensolaris_kobj.c +++ b/sys/compat/opensolaris/kern/opensolaris_kobj.c @@ -123,7 +123,7 @@ kobj_get_filesize_vnode(struct _buf *file, uint64_t *size) struct vattr va; int error; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); error = VOP_GETATTR(vp, &va, td->td_ucred, td); VOP_UNLOCK(vp, 0, td); if (error == 0) @@ -176,7 +176,7 @@ kobj_read_file_vnode(struct _buf *file, char *buf, unsigned size, unsigned off) auio.uio_resid = size; auio.uio_td = td; - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); error = VOP_READ(vp, &auio, IO_UNIT | IO_SYNC, td->td_ucred); VOP_UNLOCK(vp, 0, td); return (error != 0 ? -1 : size - auio.uio_resid); diff --git a/sys/compat/opensolaris/kern/opensolaris_vfs.c b/sys/compat/opensolaris/kern/opensolaris_vfs.c index ef184b4..e3325ae 100644 --- a/sys/compat/opensolaris/kern/opensolaris_vfs.c +++ b/sys/compat/opensolaris/kern/opensolaris_vfs.c @@ -187,7 +187,7 @@ domount(kthread_t *td, vnode_t *vp, const char *fstype, char *fspath, /* * Allocate and initialize the filesystem. */ - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(vp, LK_SHARED | LK_RETRY, td); mp = vfs_mount_alloc(vp, vfsp, fspath, td); VOP_UNLOCK(vp, 0, td); diff --git a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c index d271c8c..7a50389 100644 --- a/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c +++ b/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c @@ -934,7 +934,7 @@ zfsctl_traverse_begin(vnode_t **vpp, kthread_t *td) return (ENOENT); err = traverse(vpp); if (err == 0) - vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, td); + vn_lock(*vpp, LK_SHARED | LK_RETRY, td); return (err); } -- cgit v1.1