summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_descrip.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 4219b07..4105ee3 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -2036,6 +2036,11 @@ fdescfree(struct thread *td)
if (fdtol != NULL)
free(fdtol, M_FILEDESC_TO_LEADER);
}
+
+ mtx_lock(&fdesc_mtx);
+ td->td_proc->p_fd = NULL;
+ mtx_unlock(&fdesc_mtx);
+
FILEDESC_XLOCK(fdp);
i = --fdp->fd_refcnt;
FILEDESC_XUNLOCK(fdp);
@@ -2053,11 +2058,6 @@ fdescfree(struct thread *td)
}
FILEDESC_XLOCK(fdp);
- /* XXX This should happen earlier. */
- mtx_lock(&fdesc_mtx);
- td->td_proc->p_fd = NULL;
- mtx_unlock(&fdesc_mtx);
-
if (fdp->fd_nfiles > NDFILE)
free(fdp->fd_ofiles, M_FILEDESC);
if (NDSLOTS(fdp->fd_nfiles) > NDSLOTS(NDFILE))
OpenPOWER on IntegriCloud