[CRIU] [PATCH 1/6] mount: don't set m->bind if m is already mounted
Andrey Vagin
avagin at openvz.org
Tue Aug 5 06:20:24 PDT 2014
m->bind will be used to get the lowest mount.
mount is "lowest", if m->bind is NULL. The "lowest" moutn is mounted, all
other are bind-mounted from it.
propagate_siblings() is called for each mount and it set the bind field
for other mounts. A part of these other mounts can be already mounted.
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 6393bc3..1f12434 100644
--- a/mount.c
+++ b/mount.c
@@ -1189,11 +1189,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;
}
@@ -1234,6 +1238,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)
--
1.8.5.3
More information about the CRIU
mailing list