From ac087d499842f3645586714061d4a3d660642541 Mon Sep 17 00:00:00 2001 From: =?utf8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com> Date: Tue, 2 Apr 2024 13:21:41 +0100 Subject: [PATCH] renameatu: handle ENOSYS from renameatx_np * lib/renameatu.c(): Fall back to renameat() when renameatx_np(RENAME_EXCL) returns "Function not implemented". This issue was seen with macFUSE. Reported at https://github.com/coreutils/coreutils/issues/79 --- ChangeLog | 7 +++++++ lib/renameatu.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f7dcb49f08..c6ccc0f737 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2024-04-02 Pádraig Brady <P@draigBrady.com> + + renameatu: handle ENOSYS from renameatx_np + * lib/renameatu.c(): Fall back to renameat() without RENAME_EXCL + if "Function not implemented" is returned. This was seen with macFUSE. + Reported at https://github.com/coreutils/coreutils/issues/79 + 2024-04-02 Collin Funk <collin.funk1@gmail.com> gnulib-tool.py: Accept valid make syntax for escaped newlines. diff --git a/lib/renameatu.c b/lib/renameatu.c index 6893232516..815e3e0da9 100644 --- a/lib/renameatu.c +++ b/lib/renameatu.c @@ -78,7 +78,7 @@ renameat2ish (int fd1, char const *src, int fd2, char const *dst, if (flags) { int r = renameatx_np (fd1, src, fd2, dst, RENAME_EXCL); - if (r == 0 || errno != ENOTSUP) + if (r == 0 || (errno != ENOTSUP && errno != ENOSYS)) return r; } # endif -- 2.43.0