[CRIU] [PATCH 2/2] make it possible to use --enable-fs more than once
Oleg Nesterov
oleg at redhat.com
Mon Apr 20 08:42:26 PDT 2015
Change add_fsname_auto() to join multiple --enable-fs options.
Note: "all" always wins, and "--enable-fs foo,all,bar" results
in fsauto_names = "all" too.
Signed-off-by: Oleg Nesterov <oleg at redhat.com>
---
mount.c | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/mount.c b/mount.c
index 970da99..b6930db 100644
--- a/mount.c
+++ b/mount.c
@@ -1365,6 +1365,7 @@ static struct fstype fstypes[32] = {
},
};
+static char fsauto_all[] = "all";
static char *fsauto_names;
static bool css_contains(const char *css, const char *str)
@@ -1391,7 +1392,7 @@ static bool fsname_is_auto(const char *name)
if (!fsauto_names)
return false;
- if (strcmp(fsauto_names, "all") == 0)
+ if (fsauto_names == fsauto_all)
return true;
return css_contains(fsauto_names, name);
@@ -1399,8 +1400,21 @@ static bool fsname_is_auto(const char *name)
bool add_fsname_auto(const char *names)
{
- xfree(fsauto_names);
- fsauto_names = xstrdup(names);
+ char *old = fsauto_names;
+
+ if (old == fsauto_all)
+ return true;
+
+ if (css_contains(names, fsauto_all))
+ fsauto_names = fsauto_all;
+ else if (!old)
+ fsauto_names = xstrdup(names);
+ else {
+ fsauto_names = NULL;
+ asprintf(&fsauto_names, "%s,%s", old, names);
+ }
+
+ xfree(old);
return fsauto_names != NULL;
}
--
1.5.5.1
More information about the CRIU
mailing list