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