Re: [PATCH v3] vfs: support statx(..., NULL, AT_EMPTY_PATH, ...)

From: Mateusz Guzik
Date: Wed Jun 26 2024 - 09:40:25 EST


On Wed, Jun 26, 2024 at 4:59 AM Xi Ruoyao <xry111@xxxxxxxxxxx> wrote:
>
> On Tue, 2024-06-25 at 17:18 +0200, Mateusz Guzik wrote:
> > + if ((sx->flags & (AT_EMPTY_PATH | AT_STATX_SYNC_TYPE)) ==
> > + (AT_EMPTY_PATH | AT_STATX_SYNC_TYPE) &&
> > + vfs_empty_path(sx->dfd, path)) {
> > sx->filename = NULL;
> > - return ret;
>
> AT_STATX_SYNC_TYPE == AT_STATX_FORCE_SYNC | AT_STATX_DONT_SYNC but
> AT_STATX_FORCE_SYNC and AT_STATX_DONT_SYNC obviously contradicts with
> each other. Thus valid uses of statx won't satisfy this condition.
>

I don't know wtf I was thinking, this is indeed bogus.

> And I guess the condition here should be same as the condition in
> SYSCALL_DEFINE5(statx) or am I wrong?
>

That I disagree with. The AUTOMOUNT thing is a glibc-local problem for
fstatat. Unless if you mean the if should be of similar sort modulo
the flag. :)

I am going to fix this up and write a io_uring testcase, then submit a
v4. Maybe today or tomorrow.

> --
> Xi Ruoyao <xry111@xxxxxxxxxxx>
> School of Aerospace Science and Technology, Xidian University



--
Mateusz Guzik <mjguzik gmail.com>