summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_descrip.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2013-01-31 22:14:16 +0000
committerpjd <pjd@FreeBSD.org>2013-01-31 22:14:16 +0000
commitb04cb3ac24c8af0c1b3416bdc47bc70c95319744 (patch)
treeabd19dbada4e17e53d96ed1cc2912beba18896b5 /sys/kern/kern_descrip.c
parent36392a26c9cf8b7ab5ba5103005d03a4db147c3e (diff)
downloadFreeBSD-src-b04cb3ac24c8af0c1b3416bdc47bc70c95319744.zip
FreeBSD-src-b04cb3ac24c8af0c1b3416bdc47bc70c95319744.tar.gz
Remove label that was accidentally moved during Giant removal from VFS.
Diffstat (limited to 'sys/kern/kern_descrip.c')
-rw-r--r--sys/kern/kern_descrip.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 6dae173..87d75ea 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -779,8 +779,10 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
if (arg != 0) {
vp = fp->f_vnode;
error = vn_lock(vp, LK_SHARED);
- if (error != 0)
- goto readahead_vnlock_fail;
+ if (error != 0) {
+ fdrop(fp, td);
+ break;
+ }
bsize = fp->f_vnode->v_mount->mnt_stat.f_iosize;
VOP_UNLOCK(vp, 0);
fp->f_seqcount = (arg + bsize - 1) / bsize;
@@ -788,7 +790,6 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
new = old = fp->f_flag;
new |= FRDAHEAD;
} while (!atomic_cmpset_rel_int(&fp->f_flag, old, new));
- readahead_vnlock_fail:;
} else {
do {
new = old = fp->f_flag;
OpenPOWER on IntegriCloud