mbox series

[v4,0/1] io-uring: Make statx api stable

Message ID 20220225185326.1373304-1-shr@fb.com (mailing list archive)
Headers show
Series io-uring: Make statx api stable | expand

Message

Stefan Roesch Feb. 25, 2022, 6:53 p.m. UTC
One of the key architectual tenets of io-uring 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.

Patch:
 Part 1: fs: replace const char* parameter in vfs_statx and do_statx with
          struct filename
   Create filename object outside of do_statx and vfs_statx, so io-uring
   can create the filename object during the prepare phase

 Part 2: io-uring: Copy path name during prepare stage for statx
   Create and store filename object during prepare phase


There is also a patch for the liburing libray to add a new test case. This
patch makes sure that the api is stable.
  "liburing: add test for stable statx api"

The patch has been tested with the liburing test suite and fstests.


Changes:
V2: don't check name in vfs_fstatat
V3: don't check name in statx syscall
V4: - incorporate Steven Rostedt's fix
    - Merge both patches to avoid bisect problem
      (the io-uring changes have a dependency on the parameter change in
       the fs layer)


Stefan Roesch (1):
  io-uring: Make statx API stable

 fs/internal.h |  4 +++-
 fs/io_uring.c | 22 ++++++++++++++++++++--
 fs/stat.c     | 49 +++++++++++++++++++++++++++++++++++--------------
 3 files changed, 58 insertions(+), 17 deletions(-)


base-commit: 5c1ee569660d4a205dced9cb4d0306b907fb7599

Comments

Jens Axboe Feb. 25, 2022, 8:30 p.m. UTC | #1
On Fri, 25 Feb 2022 10:53:25 -0800, Stefan Roesch wrote:
> One of the key architectual tenets of io-uring 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.
> 
> Patch:
>  Part 1: fs: replace const char* parameter in vfs_statx and do_statx with
>           struct filename
>    Create filename object outside of do_statx and vfs_statx, so io-uring
>    can create the filename object during the prepare phase
> 
> [...]

Applied, thanks!

[1/1] io-uring: Make statx API stable
      commit: c22368edfa24ec033f9328b3328aaa0349c15e6c

Best regards,