From 64e493e7e4647e6e349d968c6aa52fc55be6208e Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Tue, 23 Jul 2019 09:18:30 +0200 Subject: [PATCH] main: create_directory does unlink only on ENOTDIR Signed-off-by: Giuseppe Scrivano --- main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 11da83a..5198bf5 100644 --- a/main.c +++ b/main.c @@ -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);