Re: [RFC] shared subtrees

From: Mike Waychison
Date: Mon Jan 17 2005 - 13:41:22 EST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Al Viro wrote:
> 3. bind
>
> bind works almost identically to mount; new vfsmount is created for every
> place that gets propagation from mountpoint and propagation is set up to
> mirror that between the mountpoints. However, there is a difference: unlike
> the case of mount, vfsmount we were going to attach (say it, A) has some
> history - it was created as a copy of some pre-existing vfsmount V. And
> that's where the things get interesting:
> * if V is contained in some p-node p, A is placed into the same
> p-node. That may require merging one of the p-nodes we'd just created
> with p (that will be the counterpart of the p-node containing the mountpoint).
> * if V is owned by some p-node p, then A (or p-node containing A)
> becomes owned by p.
>

Corner case: how do we handle the case where:

mount --make-shared /foo
mount --bind /foo /foo/bar

A nested --bind without sharing makes sense, but doesn't when sharing is
enabled (infinite loop).

How about a rule that states that for all Ai,Aj in p-node p, Ai must not
parent Aj in the vfsmount tree. This can be enforced at graft time.

- --
Mike Waychison
Sun Microsystems, Inc.
1 (650) 352-5299 voice
1 (416) 202-8336 voice

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTICE: The opinions expressed in this email are held by me,
and may not represent the views of Sun Microsystems, Inc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFB7ARmdQs4kOxk3/MRAjkjAKCEBWx7iOWhTu1EOR2ABMr5abW4RgCdGlMu
u/Isw16fgZaErR3BErWq3JI=
=mJnu
-----END PGP SIGNATURE-----
-
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/