• Stefan Roesch's avatar
    io-uring: Make statx API stable · 1b6fe6e0
    Stefan Roesch authored
    One of the key architectual tenets is to keep the parameters for
    io-uring stable. After the call has been submitted, its value can
    be changed. Unfortunaltely this is not the case for the current statx
    implementation.
    
    IO-Uring change:
    This changes replaces the const char * filename pointer in the io_statx
    structure with a struct filename *. In addition it also creates the
    filename object during the prepare phase.
    
    With this change, the opcode also needs to invoke cleanup, so the
    filename object gets freed after processing the request.
    
    fs change:
    This replaces the const char* __user filename parameter in the two
    functions do_statx and vfs_statx with a struct filename *. In addition
    to be able to correctly construct a filename object a new helper
    function getname_statx_lookup_flags is introduced. The function makes
    sure that do_statx and vfs_statx is invoked with the correct lookup flags.
    Signed-off-by: default avatarStefan Roesch <shr@fb.com>
    Link: https://lore.kernel.org/r/20220225185326.1373304-2-shr@fb.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    1b6fe6e0
io_uring.c 292 KB