On Thu, 2006-09-21 at 20:31 -0400, David Zeuthen wrote:
On Wed, 2006-09-20 at 20:20 -0400, Dave Jones wrote:
> On Wed, Sep 20, 2006 at 04:07:12PM -0400, David Zeuthen wrote:
> > Btw, If someone could talk davej into including unionfs into the Fedora
> > kernel, we'd use that instead of dm-snapshot and we'd have
> > more easily solved .
> I think the comments Al Viro had on it the last time it was reviewed
> were for the most part unprintable. I wouldn't hold your breath for
> this to appear any time soon.
Right. My understanding is that the controversial part of unionfs is the
ability to join multiple writable file systems into a single tree. Is
If so, note that this is not a feature livecd nor stateless needs, the
one part is always read-only, the other parts is just a single overlay
where we take damage.
How hard would it be to do a unionfs-ro (read only) with the following
1. Support exactly two underlying directories, the first assumed to be
2. If some file exists in both trees, pick file with latest ctime
I dunno much about the kernel VFS layer to say whether this is easy or
hard but I do hope this is a lot simpler than what current unionfs is
doing. So.. is this hard?
Btw, justification for 2. ("pick file with latest ctime", not just "if
file exist in rw branch, always pick rw branch"): suppose I use a livecd
using this unionfs-ro fs and updates my bash package. The changes are
now written to a USB stick such that I have a persistent session. I now
download a newer version of the livecd where the bash package is newer.
When using this together with my USB stick, we'll pick the
newest /bin/bash file.
This sounds interesting but problematic. You can't free the space at
this point. Using touch could cause a file to disappear with no way to
recover it. Etc, etc.
Multiple writable fs's should be okay as long as the merged filesystem
only writes to a single fs. Say the last writable fs added to the
stack. Allowing writes to several layers in the stack is... not
something I want to attempt :-) Maybe you could create a simple unionfs
using fuse, although it might sacrifice performance for convenience....