diff options
| author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2012-06-19 22:21:59 +0000 |
|---|---|---|
| committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2012-06-19 22:21:59 +0000 |
| commit | 0a7007b98f0eeb7312a1f653e3d159a3c5bbff2b (patch) | |
| tree | 10ee8b46a0db9f178c6e45564496a9aac9ad30dc | |
| parent | cd4ecf3cd26d22549af484b7ac84f6a9c8dae2d8 (diff) | |
Notes
| -rw-r--r-- | sys/kern/kern_fork.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index f23c204969af..6cb95cdd7f50 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -921,8 +921,10 @@ fork1(struct thread *td, int flags, int pages, struct proc **procp, */ *procp = newproc; #ifdef PROCDESC - if (flags & RFPROCDESC) + if (flags & RFPROCDESC) { procdesc_finit(newproc->p_procdesc, fp_procdesc); + fdrop(fp_procdesc, td); + } #endif racct_proc_fork_done(newproc); return (0); @@ -944,8 +946,10 @@ fail1: vmspace_free(vm2); uma_zfree(proc_zone, newproc); #ifdef PROCDESC - if (((flags & RFPROCDESC) != 0) && (fp_procdesc != NULL)) + if (((flags & RFPROCDESC) != 0) && (fp_procdesc != NULL)) { + fdclose(td->td_proc->p_fd, fp_procdesc, *procdescp, td); fdrop(fp_procdesc, td); + } #endif pause("fork", hz / 2); return (error); |
