From d9da9de2571cfcb93b9f34cc09106cc13e31d72d Mon Sep 17 00:00:00 2001 From: tegge Date: Wed, 26 Mar 2003 19:21:12 +0000 Subject: [PATCH] fp->f_offset doesn't need any protection when it isn't accessed. --- sys/kern/vfs_vnops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index eba9f5d6d5a4..a01733fe8fcd 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -513,9 +513,11 @@ vn_read(fp, uio, active_cred, flags, td) * According to McKusick the vn lock is protecting f_offset here. * Once this field has it's own lock we can acquire this shared. */ - vn_lock(vp, LK_EXCLUSIVE | LK_NOPAUSE | LK_RETRY, td); - if ((flags & FOF_OFFSET) == 0) + if ((flags & FOF_OFFSET) == 0) { + vn_lock(vp, LK_EXCLUSIVE | LK_NOPAUSE | LK_RETRY, td); uio->uio_offset = fp->f_offset; + } else + vn_lock(vp, LK_SHARED | LK_NOPAUSE | LK_RETRY, td); ioflag |= sequential_heuristic(uio, fp);