Re: ext2 directory size bug (?)

From: Alexander Viro (viro@math.psu.edu)
Date: Sat Dec 02 2000 - 00:14:34 EST


On Sat, 2 Dec 2000, Chris Wedgwood wrote:

> On Thu, Nov 30, 2000 at 08:24:02AM -0500, Richard B. Johnson wrote:
>
> This is actually a feature. The directory does not get truncated.
>
> Arguably directories could be truncated when objects towards the end
> are removed; I believe UFS under Solaris might do this?
>
> An even better heuristic I like would allow repacking of a directory
> and truncation if you could safely half the size -- but I suspect
> locking issues might be hideous here.

Not really. Anything that modifies directories holds both ->i_sem and
->i_zombie, lookups hold ->i_sem and emptiness checks (i.e. victim in
rmdir and overwriting rename) hold ->i_zombie, readdir holds both.

So we could even play with punching holes in them - very easy to do when
you do ext2_delete_entry(). I've done that on directories-in-pagecache
system, but decided that I don't want to deal with (bogus) warnings from
earlier kernels (they would do the right thing, but they would complain
loudly). Truncating is a piece of cake. Repacking is not a good idea,
though, since you are risking massive corruption in case of dirty shutdown
in the wrong moment.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Dec 07 2000 - 21:00:08 EST