Thread (1 message) 1 message, 1 author, 2020-03-06

Re: [RFC][PATCH] Mark AT_* path flags as deprecated and add missing RESOLVE_ flags

From: Christian Brauner <hidden>
Date: 2020-03-06 14:10:36
Also in: linux-fsdevel, lkml

On Sat, Mar 07, 2020 at 12:41:16AM +1100, Aleksa Sarai wrote:
On 2020-03-05, David Howells [off-list ref] wrote:
quoted
Do we want to do this?  Or should we duplicate the RESOLVE_* flags to AT_*
flags so that existing *at() syscalls can make use of them?

David
---
commit 448731bf3b29f2b1f7c969d7efe1f0673ae13b5e
Author: David Howells [off-list ref]
Date:   Thu Mar 5 17:40:02 2020 +0000

    Mark AT_* flags as deprecated and add missing RESOLVE_ flags
    
    It has been suggested that new path-using system calls should use RESOLVE_*
    flags instead of AT_* flags, but the RESOLVE_* flag functions are not a
    superset of the AT_* flag functions.  So formalise this by:
    
     (1) In linux/fcntl.h, add a comment noting that the AT_* flags are
         deprecated for new system calls and that RESOLVE_* flags should be
         used instead.
I wouldn't say it that way -- the RESOLVE_* flags should be used by
syscalls *where it makes sense to change the path resolution rules*. If
it makes more sense for them to have their own flag set, they should
arguably make a separate one (like renameat2 did -- though renameat2 can
never take AT_EMPTY_PATH because it isn't sufficiently extensible).
Yeah, we should clearly state that they are not a replacement for
_all_ the AT_* flags. I think it makes sense to think of RESOLVE_* flags
as a superset of the path-resolution portions of AT_* flags.

Maybe in openat2.h:

/*
 * Flags available to syscalls wanting to modify how paths are resolved.
 * RESOLVE_* flags are intended to as a superset of those AT_* flags 
 * concerned with path resolution. All syscalls modifying their path
 * resolution behavior are expected to use RESOLVE_* flags.
 */

Something like this (Native speaker can probably do this way nicer.)?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help