Author: mjg
Date: Fri Oct 31 09:15:59 2014
New Revision: 273893
URL: https://svnweb.freebsd.org/changeset/base/273893

Log:
  filedesc: tidy up fdfree
  
  Implement fdefree_last variant and get rid of 'last' parameter.
  
  No functional changes.

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c        Fri Oct 31 08:14:13 2014        
(r273892)
+++ head/sys/kern/kern_descrip.c        Fri Oct 31 09:15:59 2014        
(r273893)
@@ -291,18 +291,22 @@ fdunused(struct filedesc *fdp, int fd)
  * Avoid some work if fdp is about to be destroyed.
  */
 static inline void
-_fdfree(struct filedesc *fdp, int fd, int last)
+fdefree_last(struct filedescent *fde)
+{
+
+       filecaps_free(&fde->fde_caps);
+}
+
+static inline void
+fdfree(struct filedesc *fdp, int fd)
 {
        struct filedescent *fde;
 
        fde = &fdp->fd_ofiles[fd];
 #ifdef CAPABILITIES
-       if (!last)
-               seq_write_begin(&fde->fde_seq);
+       seq_write_begin(&fde->fde_seq);
 #endif
-       filecaps_free(&fde->fde_caps);
-       if (last)
-               return;
+       fdefree_last(fde);
        bzero(fde, fde_change_size);
        fdunused(fdp, fd);
 #ifdef CAPABILITIES
@@ -310,20 +314,6 @@ _fdfree(struct filedesc *fdp, int fd, in
 #endif
 }
 
-static inline void
-fdfree(struct filedesc *fdp, int fd)
-{
-
-       _fdfree(fdp, fd, 0);
-}
-
-static inline void
-fdfree_last(struct filedesc *fdp, int fd)
-{
-
-       _fdfree(fdp, fd, 1);
-}
-
 /*
  * System calls on descriptors.
  */
@@ -1956,6 +1946,7 @@ fdescfree(struct thread *td)
        struct filedesc *fdp;
        int i;
        struct filedesc_to_leader *fdtol;
+       struct filedescent *fde;
        struct file *fp;
        struct vnode *cdir, *jdir, *rdir, *vp;
        struct flock lf;
@@ -2055,9 +2046,10 @@ fdescfree(struct thread *td)
        FILEDESC_XUNLOCK(fdp);
 
        for (i = 0; i <= fdp->fd_lastfile; i++) {
-               fp = fdp->fd_ofiles[i].fde_file;
+               fde = &fdp->fd_ofiles[i];
+               fp = fde->fde_file;
                if (fp != NULL) {
-                       fdfree_last(fdp, i);
+                       fdefree_last(fde);
                        (void) closef(fp, td);
                }
        }
_______________________________________________
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