Subject: Re: kern/33374
To: None <tech-kern@NetBSD.org>
From: Chapman Flack <nblists@anastigmatix.net>
List: tech-kern
Date: 04/27/2006 20:30:06
Bill Studenmund wrote:
>># mount /tmp
>># cd /tmp
>># mkdir t0 t0/t1 t1 t2
>># mount_null t1 t0/t1
>># mount_union t2 t0
> 
> Oh. That won't work right. Layered file systems don't deal with the 
> underlying file system being mounted on.

and also (re: pkg_comp and union mounts):
> You aren't supposed to union a union with the current code.

I'd like to know more about these restrictions - I haven't found any
such documentation in mount_overlay(8), mount_null(8), or
mount_union(8), and in fact the latter has some language that led
me to believe it should be supported:

 The union filesystem manipulates the namespace, rather than individual
 filesystems.  The union operation applies recursively down the directory
 tree now rooted at uniondir.  Thus any filesystems which are mounted
 under uniondir will take part in the union operation.

Are there pointers to the most recent discussions or design work
aimed at improving/debugging the layered file systems and relaxing
some of these unintuitive and undocumented restrictions?  Any existing
analyses of just where these cases break and what are the biggest
obstacles to fixing them?  There are so many things that could be done
more easily with working layered filesystems.

And though I would hate to 'resolve' the problems just by documenting
the bugs (that's how the [EXPERIMENTAL] tag got added to file-system
UNION in options(4), and it's been there about eight years now), it's
important to have some reference material on just what configurations
are known not to work, so users don't have to feel out a usable setup
through trial, error, reboots, and fscks. (!)

-Chap