Author: jeff
Date: Mon Jul  4 20:52:23 2011
New Revision: 223769
URL: http://svn.freebsd.org/changeset/base/223769

Log:
   - Fix an inode quota leak.  We need to decrement the quota once and only
     once.
  
  Tested by:    pho
  Reviewed by:  mckusick

Modified:
  head/sys/ufs/ufs/ufs_inode.c

Modified: head/sys/ufs/ufs/ufs_inode.c
==============================================================================
--- head/sys/ufs/ufs/ufs_inode.c        Mon Jul  4 20:50:09 2011        
(r223768)
+++ head/sys/ufs/ufs/ufs_inode.c        Mon Jul  4 20:52:23 2011        
(r223769)
@@ -120,15 +120,14 @@ ufs_inactive(ap)
        isize = ip->i_size;
        if (ip->i_ump->um_fstype == UFS2)
                isize += ip->i_din2->di_extsize;
-       if (ip->i_effnlink <= 0 && isize && !UFS_RDONLY(ip)) {
+       if (ip->i_effnlink <= 0 && isize && !UFS_RDONLY(ip))
+               error = UFS_TRUNCATE(vp, (off_t)0, IO_EXT | IO_NORMAL,
+                   NOCRED, td);
+       if (ip->i_nlink <= 0 && ip->i_mode && !UFS_RDONLY(ip)) {
 #ifdef QUOTA
                if (!getinoquota(ip))
                        (void)chkiq(ip, -1, NOCRED, FORCE);
 #endif
-               error = UFS_TRUNCATE(vp, (off_t)0, IO_EXT | IO_NORMAL,
-                   NOCRED, td);
-       }
-       if (ip->i_nlink <= 0 && ip->i_mode && !UFS_RDONLY(ip)) {
 #ifdef UFS_EXTATTR
                ufs_extattr_vnode_inactive(vp, td);
 #endif
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to