Re: [RFC] shared subtrees

From: Ram
Date: Tue Apr 05 2005 - 04:53:51 EST


On Sun, 2005-01-16 at 22:11, Al Viro wrote:
> On Sun, Jan 16, 2005 at 01:42:09PM -0500, J. Bruce Fields wrote:
> > On Sun, Jan 16, 2005 at 06:06:56PM +0000, Al Viro wrote:
> > > On Sun, Jan 16, 2005 at 11:02:13AM -0500, J. Bruce Fields wrote:
> > > > On Thu, Jan 13, 2005 at 10:18:51PM +0000, Al Viro wrote:
> > > > > 6. mount --move
> > > > > prohibited if what we are moving is in some p-node, otherwise we move
> > > > > as usual to intended mountpoint and create copies for everything that
> > > > > gets propagation from there (as we would do for rbind).
> > > >
> > > > Why this prohibition?
> > >
> > > How do you propagate that? We can weaken that to "in a p-node that
> > > owns something or contains more than one vfsmount", but it's not
> > > worth the trouble, AFAICS.
> >
> > I guess I'm not seeing what there is to propagate. If the vfsmount we
> > are moving is mounted under a vfsmount that's in a p-node, then there'd
> > be something to propagate, but since the --move doesn't change the
> > structure of mounts underneath the moved mountpoint, I wouldn't expect
> > any changes to be propagated from it to other mountpoints.
> >
> > I must be missing something fundamental....
>
> No - I have been missing a typo. Make that "if mountpoint of what we
> are moving...".

Ok. I have been spending time lately on implementing this RFC. So time
for some questions.

If the vfsmount that is being moved is mounted within a shared-vfsmount
(i.e is in p-node) why should the move operation be prohibited?

The way I look at it is: umount the vfsmount, propogate the unmount
event to all corresponding vfsmounts, and mount the vfsmount struct at
its destination and if applicable propogate the mount event.

An example:

If A is a vfsmount contained in pnode p and B is a vfsmount
mounted on A, and B is moved to a mountpoint on vfsmount C the
operations involved are:

1. umount B from A and propogate the unmount to all vfsmount contained
in p as well as recursively to all slave-pnodes
and slave vfsstructs.
2. mount B on the mountpoint in C, and if C is in
some p-node, propogate the mount to all vfsmounts in that
pnode as well as recursively to its slave p-nodes and
slave vfsstructs.



RP


> -
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

-
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/