svn commit: r223769 - head/sys/ufs/ufs

Jeff Roberson jeff at FreeBSD.org
Mon Jul 4 20:52:24 UTC 2011


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


More information about the svn-src-all mailing list