From 6ccd871ba67be0b6fcfc9b06f12faad51dc0af07 Mon Sep 17 00:00:00 2001 From: Vitaly Ostrosablin Date: Tue, 12 Dec 2017 16:12:45 +0300 Subject: [PATCH] criu: Don't fail if ghost file has no parent dirs. Due to way CRIU handles paths (as relative to workdir), there's a case, where migration would fail. Simple example is a ghost file in filesystem root (with root being cwd). For example, "/unlinked" becomes "unlinked". And original code piece scans path for other slashes, which would be missing in this case. But it's still a perfectly valid case, and there's no need to fail. So if there's no parent dir - we just don't need to create one and we can just return 0 here instead of failing. Signed-off-by: Vitaly Ostrosablin Signed-off-by: Andrei Vagin --- criu/files-reg.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/criu/files-reg.c b/criu/files-reg.c index 07b0bc4e5..13719990a 100644 --- a/criu/files-reg.c +++ b/criu/files-reg.c @@ -1513,10 +1513,8 @@ static int make_parent_dirs_if_need(int mntns_root, char *path) struct stat st; p = last_delim = strrchr(path, '/'); - if (!p) { - pr_err("Path %s has no parent dir\n", path); - return -1; - } + if (!p) + return 0; *p = '\0'; if (fstatat(mntns_root, path, &st, AT_EMPTY_PATH) == 0)