summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-08-21 01:42:47 +0000
committerdyson <dyson@FreeBSD.org>1997-08-21 01:42:47 +0000
commit1cf12eea82f60eefe044abbf311d301657d64c39 (patch)
tree927207e16ffc4544acbd07c96113394897f8d683 /sys/ufs
parent02d84824b3e2fe80e87af7df2c1d50153b4f1126 (diff)
downloadFreeBSD-src-1cf12eea82f60eefe044abbf311d301657d64c39.zip
FreeBSD-src-1cf12eea82f60eefe044abbf311d301657d64c39.tar.gz
Performance improvment to minimize delayed write output of files
that have been deleted. Submitted by: Peter M. Chen <pmchen@eecs.umich.edu>
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ufs/ufs_vnops.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index fc09996..0ed5c5d 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
- * $Id: ufs_vnops.c,v 1.51 1997/06/02 06:24:51 julian Exp $
+ * $Id: ufs_vnops.c,v 1.52 1997/07/13 16:26:40 bde Exp $
*/
#include "opt_quota.h"
@@ -692,6 +692,12 @@ ufs_remove(ap)
ip->i_flag |= IN_CHANGE;
}
out:
+ if ((ip->i_nlink == 0) &&
+ ((vp->v_object == NULL) && (vp->v_usecount == 1)) ||
+ (vp->v_usecount <= 2)) {
+ VOP_TRUNCATE(vp, (off_t)0, 0, NOCRED, NULL);
+ }
+
if (dvp == vp)
vrele(vp);
else
OpenPOWER on IntegriCloud