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