Re: [RFC 12/26] ext2 white-out support

From: Josef Sipek
Date: Tue Jul 31 2007 - 13:17:16 EST


On Tue, Jul 31, 2007 at 06:03:06PM +0100, Mark Williamson wrote:
> > Really the only sane way of keeping track of whiteouts seems some external
> > store. We did an experiment with Unionfs, and moving the whiteout handling
> > to effectively a "library" that did all the dirty work cleaned up the code
> > considerably [2,3].
>
> What about keeping track of whiteouts in a special file (or files) in the top
> level filesystem of the union? For instance, having a /.whiteouts file at
> the root of the top FS in the stack, instead of storing union-specific data
> in the flags / inode numbers of the lower levels.

What is needed is a "filesystem" that has all the directory bits only. For
ODF, we opted to "abuse" existing filesystems to see if it actually helped
Unionfs, and I think it did help. Really, now what we (unionfs) need is a
cleanup of the ODF code, with a bit better defined interface.

...
> This might avoid requiring a store external to the stack of filesystems and I
> believe it would solve the problem with shared branches and arbitrary
> stacking that you described?

We generally did a loopback mount on a file. Very similar to your idea.

> I guess a rather similar effect could be had by somehow storing loopback
> mountable ODF filesystems in the top layer of a union somewhere (e.g. with
> the default path /.odf) and allowing the user to specify an alternate
> location at mount time if necessary. So maybe these approaches are quite
> similar after all...

Very :) We forced the user to mount the fs in the odf loopback manually, but
there's no reason why we couldn't do an in-kernel mount on unionfs mount
time.

Josef 'Jeff' Sipek.

--
Once you have their hardware. Never give it back.
(The First Rule of Hardware Acquisition)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/