[PATCH] Add renameat2 function [BZ #17662]

Paul Eggert eggert@cs.ucla.edu
Wed Jul 4 19:53:00 GMT 2018


Carlos O'Donell wrote:

> Suggest something like this:
> 
> * The library now implements the renameat2 function. On Linux systems that
>    support the renameat2 system call this is a wrapper for the kernel support
>    and avoids the race conditions present with renameat. No emulation is provide
>    and if renameat2 is not supported by the underlying operating system either
>    an errno of ENOSYS or EINVAL error will be returned.

This wording doesn't look right, since there is emulation in some cases even 
when renameat2 is not supported by the underlying operating system. That is, 
when FLAGS == 0, renameat2 is often emulated via renameat.  How about something 
like this wording instead?

* The library now implements the renameat2 function.  On Linux systems that
   support the renameat2 system call this is a wrapper for kernel support
   and when renameat2's flags are nonzero this should avoid race conditions
   present with renameat.  The renameat2 function fails with an errno of
   ENOSYS or EINVAL when given nonzero flags that cannot be implemented
   atomically by the kernel.



More information about the Libc-alpha mailing list