All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Christian Brauner <christian.brauner@ubuntu.com>,
	Stefan Roesch <shr@fb.com>
Cc: io-uring@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	kernel-team@fb.com, torvalds@linux-foundation.org
Subject: Re: [PATCH v6 0/5] io_uring: add xattr support
Date: Thu, 23 Dec 2021 07:39:37 -0700	[thread overview]
Message-ID: <35dcdd4b-8bf3-bd67-d045-bd99ea524777@kernel.dk> (raw)
In-Reply-To: <20211223110453.zbyah76jpc3ivjfp@wittgenstein>

On 12/23/21 4:04 AM, Christian Brauner wrote:
> On Wed, Dec 22, 2021 at 01:01:22PM -0800, Stefan Roesch wrote:
>> 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 do_user_path_at_empty from user_path_at_empty()
>>   This splits off a new function do_user_path_at_empty from
>>   user_path_at_empty that is based on filename and not on a
>>   user-specified string.
>>
>> Patch 2: fs: split off setxattr_setup function from setxattr
>>   Split off the setup part of the setxattr function.
>>
>> Patch 3: 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 4: io_uring: add fsetxattr and setxattr support
>>   This adds new functions to support the fsetxattr and setxattr
>>   functions.
>>
>> Patch 5: 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.
>>
>>
>> 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.
>>     - 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 (5):
>>   fs: split off do_user_path_at_empty from user_path_at_empty()
>>   fs: split off setxattr_setup 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                 |  23 +++
>>  fs/io_uring.c                 | 318 ++++++++++++++++++++++++++++++++++
>>  fs/namei.c                    |  10 +-
>>  fs/xattr.c                    | 107 ++++++++----
>>  include/linux/namei.h         |   2 +
>>  include/uapi/linux/io_uring.h |   8 +-
>>  6 files changed, 428 insertions(+), 40 deletions(-)
>>
>>
>> base-commit: b4518682080d3a1cdd6ea45a54ff6772b8b2797a
> 
> Jens, please keep me in the loop once this series lands.

You bet, and thanks for the reviews!

> I maintain a large vfs testsuite for idmapped mounts (It's actually a
> generic testsuite which also tests idmapped mounts.) and it currently
> already has tests for io_uring:
> 
> https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/src/idmapped-mounts/idmapped-mounts.c#n6942
> 
> Once this lands we need to expand it to test xattr support for io_uring
> as well (It should probably also include mkdir/link/mknod that we added
> last cycle.).

There are a few basic tests here:

https://git.kernel.dk/cgit/liburing/log/?h=xattr

as well, but more of a sanity kind of checking, would be great if tests
were added to the VFS suite as well.

With the last few kinks ironed out, I hope to queue the next version
posted for 5.17.

-- 
Jens Axboe


      reply	other threads:[~2021-12-23 14:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-22 21:01 [PATCH v6 0/5] io_uring: add xattr support Stefan Roesch
2021-12-22 21:01 ` [PATCH v6 1/5] fs: split off do_user_path_at_empty from user_path_at_empty() Stefan Roesch
2021-12-23 10:48   ` Christian Brauner
2021-12-22 21:01 ` [PATCH v6 2/5] fs: split off setxattr_setup function from setxattr Stefan Roesch
2021-12-23 10:24   ` Christian Brauner
2021-12-22 21:01 ` [PATCH v6 3/5] fs: split off do_getxattr from getxattr Stefan Roesch
2021-12-23 10:57   ` Christian Brauner
2021-12-22 21:01 ` [PATCH v6 4/5] io_uring: add fsetxattr and setxattr support Stefan Roesch
2021-12-23 14:52   ` Christian Brauner
2021-12-23 20:00     ` Stefan Roesch
2021-12-22 21:01 ` [PATCH v6 5/5] io_uring: add fgetxattr and getxattr support Stefan Roesch
2021-12-23 11:04 ` [PATCH v6 0/5] io_uring: add xattr support Christian Brauner
2021-12-23 14:39   ` Jens Axboe [this message]

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 \
    --in-reply-to=35dcdd4b-8bf3-bd67-d045-bd99ea524777@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=christian.brauner@ubuntu.com \
    --cc=io-uring@vger.kernel.org \
    --cc=kernel-team@fb.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=shr@fb.com \
    --cc=torvalds@linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.