main: create_directory does unlink only on ENOTDIR

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano 2019-07-23 09:18:30 +02:00
parent cbf7881f01
commit 64e493e7e4
No known key found for this signature in database
GPG Key ID: E4730F97F60286ED

4
main.c
View File

@ -2194,11 +2194,11 @@ create_directory (struct ovl_data *lo, int dirfd, const char *name, const struct
goto out;
}
unlinkat (dirfd, name, 0);
ret = renameat (lo->workdir_fd, wd_tmp_file_name, dirfd, name);
if (ret < 0)
{
if (errno == ENOTDIR)
unlinkat (dirfd, name, 0);
if (errno == ENOENT && parent)
{
ret = create_node_directory (lo, parent);