]> Savannah Git Hosting - gnulib.git/commitdiff
renameatu: prefer renameat2 to syscall
authorAndreas Henriksson <andreas@fatal.se>
Sun, 7 Oct 2018 22:01:07 +0000 (15:01 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 7 Oct 2018 22:02:25 +0000 (15:02 -0700)
* lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]:
Use renameat2 instead of syscall (Bug#32796).
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2.

ChangeLog
lib/renameatu.c
m4/renameat.m4

index 9726fdfe16c644f53075b60a0890c775b4c3c8f0..a91bbd139d8f1c718671c75be50c29b7cc140775 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-10-07  Andreas Henriksson  <andreas@fatal.se>  (tiny change)
+
+       renameatu: prefer renameat2 to syscall
+       * lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]:
+       Use renameat2 instead of syscall (Bug#32796).
+       * m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2.
+
 2018-10-07  Benno Schulenberg  <bensberg@telfort.nl>
 
        bootstrap, gnulib-tool: use https instead of insecure rsync
index b013ad697f723fd1923675b6d5459ee4d09851e6..58eee92ec164867a1dfad18956ac56f5351a86f7 100644 (file)
@@ -80,7 +80,10 @@ renameatu (int fd1, char const *src, int fd2, char const *dst,
   int ret_val = -1;
   int err = EINVAL;
 
-#ifdef SYS_renameat2
+#ifdef HAVE_RENAMEAT2
+  ret_val = renameat2 (fd1, src, fd2, dst, flags);
+  err = errno;
+#elif defined SYS_renameat2
   ret_val = syscall (SYS_renameat2, fd1, src, fd2, dst, flags);
   err = errno;
 #elif defined RENAME_EXCL
index 11675078599fd3fe551a08bc55a6355d6fce745e..9101844c4115bc46da3f4a98dd900b18536f5633 100644 (file)
@@ -15,7 +15,7 @@ AC_DEFUN([gl_FUNC_RENAMEAT],
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_HEADERS([linux/fs.h])
-  AC_CHECK_FUNCS_ONCE([renameat])
+  AC_CHECK_FUNCS_ONCE([renameat renameat2])
   if test $ac_cv_func_renameat = no; then
     HAVE_RENAMEAT=0
   elif test $REPLACE_RENAME = 1; then