Have RESOLVE_* flags superseded AT_* flags for new syscalls?

David Howells
2020-02-28T14:53:45Z

I've been told that RESOLVE_* flags, which can be found in linux/openat2.h,
should be used instead of the equivalent AT_* flags for new system calls. Is
this the case?

If so, should we comment them as being deprecated in the header file? And
should they be in linux/fcntl.h rather than linux/openat2.h?

Also:

(*) It should be noted that the RESOLVE_* flags are not a superset of the
AT_* flags (there's no equivalent of AT_NO_AUTOMOUNT for example).

(*) It has been suggested that AT_SYMLINK_NOFOLLOW should be the default, but
only RESOLVE_NO_SYMLINKS exists.

David