Author: pjd
Date: Thu Jun 14 15:26:23 2012
New Revision: 237073
URL: http://svn.freebsd.org/changeset/base/237073

Log:
  Assert that the filedesc lock is not held when closef() is called.
  
  MFC after:    1 month

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c        Thu Jun 14 15:24:45 2012        
(r237072)
+++ head/sys/kern/kern_descrip.c        Thu Jun 14 15:26:23 2012        
(r237073)
@@ -2112,6 +2112,9 @@ closef(struct file *fp, struct thread *t
        struct filedesc *fdp;
        struct file *fp_object;
 
+       fdp = td->td_proc->p_fd;
+       FILEDESC_UNLOCK_ASSERT(fdp);
+
        /*
         * POSIX record locking dictates that any close releases ALL
         * locks owned by this process.  This is handled by setting
@@ -2147,7 +2150,6 @@ closef(struct file *fp, struct thread *t
                         * Handle special case where file descriptor table is
                         * shared between multiple process leaders.
                         */
-                       fdp = td->td_proc->p_fd;
                        FILEDESC_XLOCK(fdp);
                        for (fdtol = fdtol->fdl_next;
                             fdtol != td->td_proc->p_fdtol;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to