[RFC PATCH 11/38] rename: prefer renameat syscall

Jonas Bonn jonas at southpole.se
Tue Sep 6 08:30:35 UTC 2011


Signed-off-by: Jonas Bonn <jonas at southpole.se>
---
 libc/sysdeps/linux/common/rename.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/libc/sysdeps/linux/common/rename.c b/libc/sysdeps/linux/common/rename.c
index 9d8397a..51e2633 100644
--- a/libc/sysdeps/linux/common/rename.c
+++ b/libc/sysdeps/linux/common/rename.c
@@ -12,6 +12,15 @@
 #include <string.h>
 #include <sys/param.h>
 #include <stdio.h>
+#include <fcntl.h>
+
+#ifdef __NR_renameat
+int rename(const char *oldpath, const char *newpath)
+{
+	return renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath);
+}
+
+#else
 
 #define __NR___syscall_rename __NR_rename
 static __inline__ _syscall2(int, __syscall_rename, const char *, oldpath,
@@ -22,3 +31,4 @@ int rename(const char * oldpath, const char * newpath)
 	return __syscall_rename(oldpath, newpath);
 }
 
+#endif
-- 
1.7.5.4



More information about the uClibc mailing list