[CRIU] [PATCH 4/6] mnt: add --enable-external-masters option
Tycho Andersen
tycho.andersen at canonical.com
Tue Apr 7 16:37:19 PDT 2015
This option enables external (slave) bind mounts to be resolved.
Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
crtools.c | 11 +++++++++++
include/cr_options.h | 1 +
mount.c | 3 +++
3 files changed, 15 insertions(+)
diff --git a/crtools.c b/crtools.c
index fe77f39..095c86e 100644
--- a/crtools.c
+++ b/crtools.c
@@ -205,6 +205,7 @@ int main(int argc, char *argv[], char *envp[])
{ "feature", required_argument, 0, 1063 },
{ "skip-mnt", required_argument, 0, 1064},
{ "enable-external-sharing", no_argument, 0, 1065 },
+ { "enable-external-masters", no_argument, 0, 1066 },
{ },
};
@@ -425,6 +426,9 @@ int main(int argc, char *argv[], char *envp[])
case 1065:
opts.enable_external_sharing = true;
break;
+ case 1066:
+ opts.enable_external_masters = true;
+ break;
case 'M':
{
char *aux;
@@ -461,6 +465,11 @@ int main(int argc, char *argv[], char *envp[])
return 1;
}
+ if (!opts.autodetect_ext_mounts && (opts.enable_external_masters || opts.enable_external_sharing)) {
+ pr_msg("must specify --ext-mount-map auto with --enable-external-{sharing|masters}");
+ return 1;
+ }
+
if (work_dir == NULL)
work_dir = imgs_dir;
@@ -655,6 +664,8 @@ usage:
" attempt to autodetect external mount mapings\n"
" --enable-external-sharing\n"
" allow autoresolving mounts with external sharing\n"
+" --enable-external-masters\n"
+" allow autoresolving mounts with external masters\n"
" --manage-cgroups dump or restore cgroups the process is in\n"
" --cgroup-root [controller:]/newroot\n"
" change the root cgroup the controller will be\n"
diff --git a/include/cr_options.h b/include/cr_options.h
index 29be2c8..28bed45 100644
--- a/include/cr_options.h
+++ b/include/cr_options.h
@@ -64,6 +64,7 @@ struct cr_options {
struct list_head new_cgroup_roots;
bool autodetect_ext_mounts;
bool enable_external_sharing;
+ bool enable_external_masters;
bool aufs; /* auto-deteced, not via cli */
};
diff --git a/mount.c b/mount.c
index 8835a81..7d565d8 100644
--- a/mount.c
+++ b/mount.c
@@ -691,6 +691,9 @@ static int resolve_external_mounts(struct mount_info *info)
if (opts.enable_external_sharing && pm->shared_id == m->shared_id)
match = true;
+ if (opts.enable_external_masters && pm->shared_id == m->master_id)
+ match = true;
+
if (!match)
continue;
--
2.1.4
More information about the CRIU
mailing list