mbox series

[GIT,PULL] io_uring statx fix for 5.18-rc1

Message ID 1fbbd612-79bd-8a7b-8021-b8d46c3b8ac7@kernel.dk (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] io_uring statx fix for 5.18-rc1 | expand

Pull-request

git://git.kernel.dk/linux-block.git tags/for-5.18/io_uring-statx-2022-03-18

Message

Jens Axboe March 18, 2022, 9:59 p.m. UTC
Hi Linus,

On top of the main io_uring branch, this pull request is for ensuring
that the filename component of statx is stable after submit. That
requires a few VFS related changes.

Please pull!


The following changes since commit adc8682ec69012b68d5ab7123e246d2ad9a6f94b:

  io_uring: Add support for napi_busy_poll (2022-03-10 09:18:30 -0700)

are available in the Git repository at:

  git://git.kernel.dk/linux-block.git tags/for-5.18/io_uring-statx-2022-03-18

for you to fetch changes up to 1b6fe6e0dfecf8c82a64fb87148ad9333fa2f62e:

  io-uring: Make statx API stable (2022-03-10 09:33:55 -0700)

----------------------------------------------------------------
for-5.18/io_uring-statx-2022-03-18

----------------------------------------------------------------
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(-)

Comments

Linus Torvalds March 21, 2022, 11:47 p.m. UTC | #1
On Fri, Mar 18, 2022 at 2:59 PM Jens Axboe <axboe@kernel.dk> wrote:
>
> On top of the main io_uring branch, this pull request is for ensuring
> that the filename component of statx is stable after submit. That
> requires a few VFS related changes.

Ugh, I've pulled this, but I hate how it does that

    int getname_statx_lookup_flags(int);

thing with 'int' for both the incoming and outgoing flags.

And I don't say that just because the existing path lookup functions
actually use 'unsigned int', and the code strives to do things like

        unsigned int lookup_flags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY;

So 'int' is ugly, but the _really_ ugly part is how we should have a
separate type for the LOOKUP_xyz flags.

That part isn't new to this change, but this change really highlights
how lacking in type safety that thing is.

The vfs code has a huge pile of different types of 'flags'. Half of
them are various variations of mount flags, I feel, with the whole
MS_xyz -> MNT_xyz thing going on. This is more of that horrid pattern.

At least the mnt code tried to call the variables that keep MNT_xyz
flags 'mnt_flags'. I'm not sure how consistent the code is about it,
but there's _some_ attempt at it.

I do wonder if we should at least try to have a special integer type
for these things that could be checked with sparse (which nobody does)
or at least used as documentation in the function prototypes to show
"this returns a flag of type 'lookup_flag_t' rather than just
'unsigned int' (or worse yet, 'int').

Anyway, I've pulled it, I just wanted to make my reaction to it public
in the hope that some bored vfs person goes "yeah, we should do that"
and works on it.

                Linus
pr-tracker-bot@kernel.org March 22, 2022, 12:25 a.m. UTC | #2
The pull request you sent on Fri, 18 Mar 2022 15:59:21 -0600:

> git://git.kernel.dk/linux-block.git tags/for-5.18/io_uring-statx-2022-03-18

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b080cee72ef355669cbc52ff55dc513d37433600

Thank you!