mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-28 20:42:49 +00:00
make it possible to use --enable-fs more than once
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@redhat.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
03cb8a0a66
commit
7e93eb3bec
1 changed files with 17 additions and 3 deletions
20
mount.c
20
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue