diff options
author | phk <phk@FreeBSD.org> | 2004-11-08 12:43:23 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-11-08 12:43:23 +0000 |
commit | d24107be6b63ca9ccbc6bca190ef874651886c49 (patch) | |
tree | 11cca0a8771e6731d5d9f7d0b853e593d445d41b /sys/kern/kern_fork.c | |
parent | 63cd9549c7364ad52248b1664e4c346890ee6448 (diff) | |
download | FreeBSD-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.c | 8 |
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); |