diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2011-07-04 20:52:23 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2011-07-04 20:52:23 +0000 |
commit | c0f4e7afa4eeef18857366efedb08422911177b1 (patch) | |
tree | 58da153c5b422c63b24fb226766ff42379a77bf3 /sys/ufs | |
parent | d33dc2fa5ca2c82e6635387e48cffe73dd55ac9f (diff) | |
download | src-c0f4e7afa4eeef18857366efedb08422911177b1.tar.gz src-c0f4e7afa4eeef18857366efedb08422911177b1.zip |
- Fix an inode quota leak. We need to decrement the quota once and only
once.
Tested by: pho
Reviewed by: mckusick
Notes
Notes:
svn path=/head/; revision=223769
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ufs/ufs_inode.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/ufs/ufs/ufs_inode.c b/sys/ufs/ufs/ufs_inode.c index 7ddbe9713e82..129c26d53a3b 100644 --- a/sys/ufs/ufs/ufs_inode.c +++ b/sys/ufs/ufs/ufs_inode.c @@ -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 |