diff options
author | pjd <pjd@FreeBSD.org> | 2013-01-31 22:14:16 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2013-01-31 22:14:16 +0000 |
commit | b04cb3ac24c8af0c1b3416bdc47bc70c95319744 (patch) | |
tree | abd19dbada4e17e53d96ed1cc2912beba18896b5 /sys/kern/kern_descrip.c | |
parent | 36392a26c9cf8b7ab5ba5103005d03a4db147c3e (diff) | |
download | FreeBSD-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.c | 7 |
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; |