summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_fork.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-11-08 12:43:23 +0000
committerphk <phk@FreeBSD.org>2004-11-08 12:43:23 +0000
commitd24107be6b63ca9ccbc6bca190ef874651886c49 (patch)
tree11cca0a8771e6731d5d9f7d0b853e593d445d41b /sys/kern/kern_fork.c
parent63cd9549c7364ad52248b1664e4c346890ee6448 (diff)
downloadFreeBSD-src-d24107be6b63ca9ccbc6bca190ef874651886c49.zip
FreeBSD-src-d24107be6b63ca9ccbc6bca190ef874651886c49.tar.gz
Use more intuitive pointer for fdinit() and fdcopy().
Change fdcopy() to take unlocked filedesc.
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r--sys/kern/kern_fork.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index f90ff32..c6e2f12 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -238,8 +238,8 @@ fork1(td, flags, pages, procp)
if (p1->p_fd->fd_refcnt > 1) {
struct filedesc *newfd;
- newfd = fdcopy(td->td_proc->p_fd);
FILEDESC_UNLOCK(p1->p_fd);
+ newfd = fdcopy(p1->p_fd);
fdfree(td);
p1->p_fd = newfd;
} else
@@ -421,12 +421,10 @@ again:
* Copy filedesc.
*/
if (flags & RFCFDG) {
- fd = fdinit(td->td_proc->p_fd);
+ fd = fdinit(p1->p_fd);
fdtol = NULL;
} else if (flags & RFFDG) {
- FILEDESC_LOCK(p1->p_fd);
- fd = fdcopy(td->td_proc->p_fd);
- FILEDESC_UNLOCK(p1->p_fd);
+ fd = fdcopy(p1->p_fd);
fdtol = NULL;
} else {
fd = fdshare(p1->p_fd);
OpenPOWER on IntegriCloud