From: Stefan Roesch <[email protected]>
To: <[email protected]>, <[email protected]>,
<[email protected]>
Cc: <[email protected]>, <[email protected]>, <[email protected]>
Subject: [PATCH v13 0/4] io_uring: add xattr support
Date: Wed, 23 Mar 2022 08:44:16 -0700 [thread overview]
Message-ID: <[email protected]> (raw)
This adds the xattr support to io_uring. The intent is to have a more
complete support for file operations in io_uring.
This change adds support for the following functions to io_uring:
- fgetxattr
- fsetxattr
- getxattr
- setxattr
Patch 1: fs: split off setxattr_copy and do_setxattr function from setxattr
Split off the setup part of the setxattr function in the setxattr_copy
function. Split off the processing part in do_setxattr.
Patch 2: fs: split off do_getxattr from getxattr
Split of the do_getxattr part from getxattr. This will
allow it to be invoked it from io_uring.
Patch 3: io_uring: add fsetxattr and setxattr support
This adds new functions to support the fsetxattr and setxattr
functions.
Patch 4: io_uring: add fgetxattr and getxattr support
This adds new functions to support the fgetxattr and getxattr
functions.
There are two additional patches:
liburing: Add support for xattr api's.
This also includes the tests for the new code.
xfstests: Add support for io_uring xattr support.
Changes:
V13: - refreshed the code
- Review comments mentioned that the statx api in io_uring was
not following the same pattern as the xattr api. This has
been fixed by a previous patch (using the same pattern as
this patch)
V12: - add union to xattr_ctx structure. The getxattr api requires
a pointer to value and the setxattr requires a const pointer
to value (with a union this can be unified).
- use xattr_ctx structure in do_getxattr call.
V11: - removed the do_user_path_at_empty function and directly
call filename_lookup
- introduce __io_xattr_finish and io_xattr_finish functions
to unify the cleanup code
- remove the older __io_setxattr_finish function
V10: - move do_user_path_at_empty definition to fs/internal.h
- introduce __io_setxattr_finish function
- introduce __io_getxattr_finish function
V9 : - keep kvalue in struct xattr_ctx
V8 : - introduce xattr_name struct as advised by Linus
- remove kname_sz field in xattr_ctx
V7 : - split off setxattr in two functions as recommeneded by
Christian.
V6 : - reverted addition of kname array to xattr_ctx structure
Adding the kname array increases the io_kiocb beyond 64 bytes
(increases it to 224 bytes). We try hard to limit it to 64 bytes.
Keeping the original interface also is a bit more efficient.
- addressed Pavel's reordering comment
- addressed Pavel's putname comment
- addressed Pavel's kvfree comment
- rebased on for-5.17/io_uring-getdents64
V5 : - add kname array to xattr_ctx structure
V4 : - rebased patch series
V3 : - remove req->file checks in prep functions
- change size parameter in do_xattr
V2 : - split off function do_user_path_empty instead of changing
the function signature of user_path_at
- Fix datatype size problem in do_getxattr
Stefan Roesch (4):
fs: split off setxattr_copy and do_setxattr function from setxattr
fs: split off do_getxattr from getxattr
io_uring: add fsetxattr and setxattr support
io_uring: add fgetxattr and getxattr support
fs/internal.h | 29 ++++
fs/io_uring.c | 294 ++++++++++++++++++++++++++++++++++
fs/xattr.c | 141 ++++++++++------
include/uapi/linux/io_uring.h | 8 +-
4 files changed, 426 insertions(+), 46 deletions(-)
base-commit: ad9c6ee642a61adae93dfa35582b5af16dc5173a
--
2.30.2
next reply other threads:[~2022-03-23 15:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-23 15:44 Stefan Roesch [this message]
2022-03-23 15:44 ` [PATCH v13 1/4] fs: split off setxattr_copy and do_setxattr function from setxattr Stefan Roesch
2022-03-23 15:44 ` [PATCH v13 2/4] fs: split off do_getxattr from getxattr Stefan Roesch
2022-03-23 15:44 ` [PATCH v13 3/4] io_uring: add fsetxattr and setxattr support Stefan Roesch
2022-03-23 15:44 ` [PATCH v13 4/4] io_uring: add fgetxattr and getxattr support Stefan Roesch
2022-03-24 8:50 ` Christian Brauner
2022-03-30 20:27 ` [PATCH v13 0/4] io_uring: add xattr support Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox