aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2009-02-13 18:18:14 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2009-02-13 18:18:14 +0000
commitea77ff0a15cd3ab1440165c4932de70cb3f64e39 (patch)
tree059be0daffb9368cf7dc8f5d8a29ff30ea6391fb /sys/kern/vfs_syscalls.c
parentf25a08888f15d86a921cf47ee261719137595f69 (diff)
downloadsrc-ea77ff0a15cd3ab1440165c4932de70cb3f64e39.tar.gz
src-ea77ff0a15cd3ab1440165c4932de70cb3f64e39.zip
Use shared vnode locks when invoking VOP_READDIR().
MFC after: 1 month
Notes
Notes: svn path=/head/; revision=188588
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r--sys/kern/vfs_syscalls.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index be3dc76ab860..80da9b750190 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -3936,7 +3936,7 @@ unionread:
auio.uio_segflg = UIO_USERSPACE;
auio.uio_td = td;
auio.uio_resid = uap->count;
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
+ vn_lock(vp, LK_SHARED | LK_RETRY);
loff = auio.uio_offset = fp->f_offset;
#ifdef MAC
error = mac_vnode_check_readdir(td->td_ucred, vp);
@@ -4095,8 +4095,7 @@ unionread:
auio.uio_segflg = UIO_USERSPACE;
auio.uio_td = td;
auio.uio_resid = count;
- /* vn_lock(vp, LK_SHARED | LK_RETRY); */
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
+ vn_lock(vp, LK_SHARED | LK_RETRY);
AUDIT_ARG(vnode, vp, ARG_VNODE1);
loff = auio.uio_offset = fp->f_offset;
#ifdef MAC