io-uring: Make statx API stable
authorStefan Roesch <shr@fb.com>
Fri, 25 Feb 2022 18:53:26 +0000 (10:53 -0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 25 Feb 2022 20:29:15 +0000 (13:29 -0700)
commitc22368edfa24ec033f9328b3328aaa0349c15e6c
treee4b780b7bc2af21a304f918a027786d76400f27c
parent6810a554d2740bef3883cf3d71057aaa129e1ce5
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