fuse-overlayfs: reload the dir before checking for EXDEV

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano 2018-07-12 23:19:16 +02:00
parent e0ba188721
commit 6e7b5d70fd
No known key found for this signature in database
GPG Key ID: E4730F97F60286ED

17
main.c
View File

@ -2572,12 +2572,21 @@ ovl_rename (fuse_req_t req, fuse_ino_t parent, const char *name,
return; return;
} }
if (node_dirp (node) && node->present_lowerdir) if (node_dirp (node))
{ {
fuse_reply_err (req, EXDEV); node = load_dir (lo, node, node->layer, node->path, node->name);
return; if (node == NULL)
} {
fuse_reply_err (req, errno);
return;
}
if (node->layer != get_upper_layer (lo) || node->present_lowerdir)
{
fuse_reply_err (req, EXDEV);
return;
}
}
pnode = node->parent; pnode = node->parent;
destpnode = do_lookup_file (lo, newparent, NULL); destpnode = do_lookup_file (lo, newparent, NULL);