diff options
author | jhb <jhb@FreeBSD.org> | 2002-10-18 17:45:41 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-10-18 17:45:41 +0000 |
commit | 0ddab318324f547688f0fa7377e8599c8752d4ba (patch) | |
tree | a0e2e77e78344d168fe1ba5d7b5fa189458b5a43 /sys/kern/kern_fork.c | |
parent | e7e57ceb22bfb52eecd879cbef99f244281c77a5 (diff) | |
download | FreeBSD-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.c | 4 |
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); } |