io-uring: Make statx API stable for-5.18/io_uring-statx for-5.18/io_uring-statx-2022-03-18
authorStefan Roesch <shr@fb.com>
Fri, 25 Feb 2022 18:53:26 +0000 (10:53 -0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Mar 2022 16:33:55 +0000 (09:33 -0700)
commit1b6fe6e0dfecf8c82a64fb87148ad9333fa2f62e
treef5c41470131e67327323a593e14622429d36b76c
parentadc8682ec69012b68d5ab7123e246d2ad9a6f94b
io-uring: Make statx API stable

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: Stefan Roesch <shr@fb.com>
Link: https://lore.kernel.org/r/20220225185326.1373304-2-shr@fb.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/internal.h
fs/io_uring.c
fs/stat.c