Re: [PATCH] LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h
From: Arnd Bergmann
Date: Sat Jun 15 2024 - 07:47:53 EST
On Sat, Jun 15, 2024, at 11:29, Huacai Chen wrote:
> On Sat, Jun 15, 2024 at 4:55 PM Xi Ruoyao <xry111@xxxxxxxxxxx> wrote:
>>
>> On Sat, 2024-06-15 at 16:52 +0800, Huacai Chen wrote:
>> > Hi, Arnd,
>> >
>> > On Sun, May 12, 2024 at 3:53 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> > >
>> > > On Sun, May 12, 2024, at 05:11, Huacai Chen wrote:
>> > > > On Sat, May 11, 2024 at 11:39 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> > > > > On Sat, May 11, 2024, at 16:28, Huacai Chen wrote:
>> > > > > > On Sat, May 11, 2024 at 8:17 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> > > > > CONFIG_COMPAT_32BIT_TIME is equally affected here. On riscv32
>> > > > > this is the only allowed configuration, while on others (arm32
>> > > > > or x86-32 userland) you can turn off COMPAT_32BIT_TIME on
>> > > > > both 32-bit kernel and on 64-bit kernels with compat mode.
>> > > > I don't know too much detail, but I think riscv32 can do something
>> > > > similar to arm32 and x86-32, or we can wait for Xuerui to improve
>> > > > seccomp. But there is no much time for loongarch because the Debian
>> > > > loong64 port is coming soon.
>> > >
>> > > What I meant is that the other architectures only work by
>> > > accident if COMPAT_32BIT_TIME is enabled and statx() gets
>> > > blocked, but then they truncate the timestamps to the tim32
>> > > range, which is not acceptable behavior. Actually mips64 is
>> > > in the same situation because it also only supports 32-bit
>> > > timestamps in newstatat(), despite being a 64-bit
>> > > architecture with a 64-bit time_t in all other syscalls.
>> > We can only wait for the seccomp side to be fixed now? Or we can get
>> > this patch upstream for LoongArch64 at the moment, and wait for
>> > seccomp to fix RISCV32 (and LoongArch32) in future?
>>
>> I'm wondering why not just introduce a new syscall or extend statx with
>> a new flag, as we've discussed many times. They have their own
>> disadvantages but better than this, IMO.
> We should move things forward, in any way. :)
Wouldn't it be sufficient to move the AT_EMPTY_PATH hack
from vfs_fstatat() to vfs_statx() so we can make them
behave the same way?
As far as I can tell, the only difference between the two is
that fstatat64() and similar already has added the check for
zero-length strings in order to make using vfs_fstatat()
fast and safe when called from glibc stat().
Arnd