diff options
author | tegge <tegge@FreeBSD.org> | 2003-03-01 17:18:28 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 2003-03-01 17:18:28 +0000 |
commit | 24eb4f5a923deecee5dfa7a2adeccd87d46dadc2 (patch) | |
tree | f6d713aba419a07b7c50952c74264b78b9956999 /sys | |
parent | d535474042ba277abf7c1a06cc538f562af82ea2 (diff) | |
download | FreeBSD-src-24eb4f5a923deecee5dfa7a2adeccd87d46dadc2.zip FreeBSD-src-24eb4f5a923deecee5dfa7a2adeccd87d46dadc2.tar.gz |
Remove unneeded code added in revision 1.188.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_descrip.c | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 25f9f46..109b8ae 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -440,19 +440,6 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) vp = fp->f_data; error = VOP_ADVLOCK(vp, (caddr_t)p->p_leader, F_GETLK, flp, F_POSIX); - /* Check for race with close */ - FILEDESC_LOCK(fdp); - if ((unsigned) fd >= fdp->fd_nfiles || - fp != fdp->fd_ofiles[fd]) { - FILEDESC_UNLOCK(fdp); - flp->l_whence = SEEK_SET; - flp->l_start = 0; - flp->l_len = 0; - flp->l_type = F_UNLCK; - (void) VOP_ADVLOCK(vp, (caddr_t)p->p_leader, - F_UNLCK, flp, F_POSIX); - } else - FILEDESC_UNLOCK(fdp); fdrop(fp, td); break; default: @@ -1659,25 +1646,15 @@ closef(fp, td) * If the descriptor was in a message, POSIX-style locks * aren't passed with the descriptor. */ - if (td != NULL && fp->f_type == DTYPE_VNODE) { - struct proc *p = td->td_proc; - int pflagcopy; - if (p->p_leader != p || - p->p_peers != NULL) { - PROC_LOCK(p->p_leader); - pflagcopy = p->p_leader->p_flag; - PROC_UNLOCK(p->p_leader); - } else - pflagcopy = p->p_flag; - if ((pflagcopy & P_ADVLOCK) != 0) { - lf.l_whence = SEEK_SET; - lf.l_start = 0; - lf.l_len = 0; - lf.l_type = F_UNLCK; - vp = fp->f_data; - (void) VOP_ADVLOCK(vp, (caddr_t)td->td_proc->p_leader, - F_UNLCK, &lf, F_POSIX); - } + if (td != NULL && (td->td_proc->p_leader->p_flag & P_ADVLOCK) != 0 && + fp->f_type == DTYPE_VNODE) { + lf.l_whence = SEEK_SET; + lf.l_start = 0; + lf.l_len = 0; + lf.l_type = F_UNLCK; + vp = fp->f_data; + (void) VOP_ADVLOCK(vp, (caddr_t)td->td_proc->p_leader, + F_UNLCK, &lf, F_POSIX); } return (fdrop(fp, td)); } |