[CRIU] [PATCH 04/11] mount: don't set m->bind if m is already mounted

Andrew Vagin avagin at parallels.com
Mon Aug 4 04:24:51 PDT 2014


On Mon, Aug 04, 2014 at 02:35:30PM +0400, Pavel Emelyanov wrote:
> Why shouldn't we?
> 
> > m->bind will be used to get the lowest mount
> 
> What does it mean?

mount is "lowest" if m->bind is NULL. The "lowest" moutn is mounted, all
other are bind-mounted from it.

> 
> > Signed-off-by: Andrey Vagin <avagin at openvz.org>
> > ---
> >  mount.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/mount.c b/mount.c
> > index 80ed133..d1f1f78 100644
> > --- a/mount.c
> > +++ b/mount.c
> > @@ -1197,11 +1197,15 @@ static int propagate_siblings(struct mount_info *mi)
> >  	 * to inherite shared group or master id
> >  	 */
> >  	list_for_each_entry(t, &mi->mnt_share, mnt_share) {
> > +		if (t->mounted)
> > +			continue;
> >  		pr_debug("\t\tBind %s\n", t->mountpoint);
> >  		t->bind = mi;
> >  	}
> >  
> >  	list_for_each_entry(t, &mi->mnt_slave_list, mnt_slave) {
> > +		if (t->mounted)
> > +			continue;
> >  		pr_debug("\t\tBind %s\n", t->mountpoint);
> >  		t->bind = mi;
> >  	}
> > @@ -1242,6 +1246,8 @@ skip_parent:
> >  	 */
> >  	if (fsroot_mounted(mi) || mi->parent == NULL)
> >  		list_for_each_entry(t, &mi->mnt_bind, mnt_bind) {
> > +			if (t->mounted)
> > +				continue;
> >  			if (t->bind)
> >  				continue;
> >  			if (t->master_id)
> > 
> 


More information about the CRIU mailing list