diff options
author | peter <peter@FreeBSD.org> | 2001-08-27 06:09:56 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-08-27 06:09:56 +0000 |
commit | 4b437abe7829ed9af8a9434c256082b546c84682 (patch) | |
tree | a8cac4344907af5683b1c88f1f7e46973765b594 /sys/ufs | |
parent | 4d1f4f0e8abb7b90a7320815340366eb1491a971 (diff) | |
download | FreeBSD-src-4b437abe7829ed9af8a9434c256082b546c84682.zip FreeBSD-src-4b437abe7829ed9af8a9434c256082b546c84682.tar.gz |
If a file has been completely unlinked, stop automatically syncing the
file. ffs will discard any pending dirty pages when it is closed,
so we may as well not waste time trying to clean them. This doesn't
stop other things from writing it out, eg: pageout, fsync(2) etc.
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index c0826cf..e52bf93 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -758,6 +758,8 @@ ufs_remove(ap) goto out; } error = ufs_dirremove(dvp, ip, ap->a_cnp->cn_flags, 0); + if (ip->i_nlink <= 0) + vp->v_flag |= VNOSYNC; VN_KNOTE(vp, NOTE_DELETE); VN_KNOTE(dvp, NOTE_WRITE); out: |