summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_fork.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2002-10-18 17:45:41 +0000
committerjhb <jhb@FreeBSD.org>2002-10-18 17:45:41 +0000
commit0ddab318324f547688f0fa7377e8599c8752d4ba (patch)
treea0e2e77e78344d168fe1ba5d7b5fa189458b5a43 /sys/kern/kern_fork.c
parente7e57ceb22bfb52eecd879cbef99f244281c77a5 (diff)
downloadFreeBSD-src-0ddab318324f547688f0fa7377e8599c8752d4ba.zip
FreeBSD-src-0ddab318324f547688f0fa7377e8599c8752d4ba.tar.gz
Do not lock the process when calling fdfree() (this would have recursed on
a non-recursive lock, the proc lock, before) since we don't need it to change p_fd.
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r--sys/kern/kern_fork.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index 1efb908..2f93823 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -257,10 +257,8 @@ fork1(td, flags, pages, procp)
if (flags & RFCFDG) {
struct filedesc *fdtmp;
fdtmp = fdinit(td); /* XXXKSE */
- PROC_LOCK(p1);
fdfree(td); /* XXXKSE */
p1->p_fd = fdtmp;
- PROC_UNLOCK(p1);
}
/*
@@ -273,10 +271,8 @@ fork1(td, flags, pages, procp)
newfd = fdcopy(td);
FILEDESC_UNLOCK(p1->p_fd);
- PROC_LOCK(p1);
fdfree(td);
p1->p_fd = newfd;
- PROC_UNLOCK(p1);
} else
FILEDESC_UNLOCK(p1->p_fd);
}
OpenPOWER on IntegriCloud