mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Add renameat2 function [BZ #17662]
The implementation falls back to renameat if renameat2 is not available in the kernel (or in the kernel headers) and the flags argument is zero. Without kernel support, a non-zero argument returns EINVAL, not ENOSYS. This mirrors what the kernel does for invalid renameat2 flags.
This commit is contained in:
@ -22,7 +22,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
int
|
||||
renameat (int oldfd, const char *old, int newfd, const char *new)
|
||||
__renameat (int oldfd, const char *old, int newfd, const char *new)
|
||||
{
|
||||
#ifdef __NR_renameat
|
||||
return INLINE_SYSCALL_CALL (renameat, oldfd, old, newfd, new);
|
||||
@ -30,3 +30,5 @@ renameat (int oldfd, const char *old, int newfd, const char *new)
|
||||
return INLINE_SYSCALL_CALL (renameat2, oldfd, old, newfd, new, 0);
|
||||
#endif
|
||||
}
|
||||
libc_hidden_def (__renameat)
|
||||
weak_alias (__renameat, renameat)
|
||||
|
Reference in New Issue
Block a user