summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>2003-03-01 17:18:28 +0000
committertegge <tegge@FreeBSD.org>2003-03-01 17:18:28 +0000
commit24eb4f5a923deecee5dfa7a2adeccd87d46dadc2 (patch)
treef6d713aba419a07b7c50952c74264b78b9956999 /sys
parentd535474042ba277abf7c1a06cc538f562af82ea2 (diff)
downloadFreeBSD-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.c41
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));
}
OpenPOWER on IntegriCloud