Subject: Re: softdep improvement
To: None <tech-kern@netbsd.org>
From: Christos Zoulas <christos@astron.com>
List: tech-kern
Date: 06/28/2006 18:07:29
In article <200606281740.TAA0000033173@zel459.zel.kfa-juelich.de>,
Matthias Drochner  <M.Drochner@fz-juelich.de> wrote:
>-=-=-=-=-=-
>
>
>Hi -
>here is a patch to softdep code which appears to have a good effect
>on recovery after crashes for me. I've been running it on my laptop
>for a couple of days, and haven't seen any bad effect, whether the
>box was running or crashing.
>How about pulling this in?
>Here is the original changelog, with a paragraph about background fsck
>left out:
>
>> revision 1.185 date: 2005/09/29 21:50:26;  author: truckman;  state:
>> Exp;  lines: +2 -0
>> 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. 
>
>best regards
>Matthias

I'd say put it in.

christos