cvs commit: src/sys/vfs/ufs ffs_softdep.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Oct 14 14:08:55 PDT 2005
dillon 2005/10/14 14:04:14 PDT
DragonFly src repository
Modified files:
sys/vfs/ufs ffs_softdep.c
Log:
FreeBSD commit message:
After a rmdir()ed directory has been truncated, force an update of
the directory's inode after queuing the dirrem that will decrement
the parent directory's link count. This will force the update of
the parent directory's actual link to actually be scheduled. Without
this change the parent directory's actual link count would not be
updated until ufs_inactive() cleared the inode of the newly removed
directory, which might be deferred indefinitely. ufs_inactive()
will not be called as long as any process holds a reference to the
removed directory, and ufs_inactive() will not clear the inode if
the link count is non-zero, which could be the result of an earlier
system crash.
This change has the fortunate side effect of more quickly cleaning
up the large number dirrem structures that linger for an extended
time after the removal of a large directory tree. It also fixes a
potential problem with the shutdown of the syncer thread timing out
if the system is rebooted immediately after removing a large directory
tree.
Taken-from: FreeBSD/1.185
Submitted-by: tegge
Revision Changes Path
1.29 +2 -0 src/sys/vfs/ufs/ffs_softdep.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_softdep.c.diff?r1=1.28&r2=1.29&f=u
More information about the Commits
mailing list