From 715d7599051602471d4a54bbc00639d32ddaaae2 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Thu, 2 Jul 2015 13:04:34 +0000 Subject: [PATCH] util: fall back in rename_noreplace when renameat2 isn't implemented According to README we only need 3.7, and while it may also make sense to bump that requirement when appropriate, it's trivial to fall back when renameat2 is not available. --- src/basic/util.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/basic/util.c b/src/basic/util.c index 727be56f583..a574c9c6611 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -5925,10 +5925,9 @@ int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, const char if (ret >= 0) return 0; - /* Even though renameat2() exists since Linux 3.15, btrfs added - * support for it later. If it is not implemented, fallback to another - * method. */ - if (errno != EINVAL) + /* renameat2() exists since Linux 3.15, btrfs added support for it later. + * If it is not implemented, fallback to another method. */ + if (!IN_SET(errno, EINVAL, ENOSYS)) return -errno; /* The link()/unlink() fallback does not work on directories. But -- 2.47.3