On Tue, Apr 23, 2019 at 5:14 PM Ian Abbott <abbotti@xxxxxxxxx> wrote: > > On 23/04/2019 13:55, Miklos Szeredi wrote: > > On Fri, Mar 1, 2019 at 6:08 PM Ian Abbott <abbotti@xxxxxxxxx> wrote: > >> > >> Currently, a CUSE server running on a 64-bit kernel can tell when an > >> ioctl request comes from a process running a 32-bit ABI, but cannot tell > >> whether the requesting process is using legacy IA32 emulation or x32 > >> ABI, for example. In particular, the server does not know the size of > >> the client process's `time_t` type. > >> > >> For 64-bit kernels, the `FUSE_IOCTL_COMPAT` and `FUSE_IOCTL_32BIT` flags > >> are currently set in the ioctl input request (`struct fuse_ioctl_in` > >> member `flags`) for a 32-bit requesting process. This patch defines a > >> new flag `FUSE_IOCTL_COMPAT_64TIME` and sets it if the 32-bit requesting > >> process (running on a 64-bit kernel) uses a 64-bit `time_t` type. > > > > Hi, > > > > Thanks for the patch. > > > > I think it should rather use in_x32_syscall() helper and follow that > > naming because there's apparently at least one example in xfs of a > > non-time_t related ioctl that varies between the x32 vs ia32. > > Hi Miklos, > > It is conceivable that COMPAT_USE_64BIT_TIME could be true for some > other arch/ABI (although currently it is only ever set for x86/x32). > Should it have separate flags for "compat 64-bit time" and "compat x32" > (even though that is currently redundant)? No, it should just be a single flag, something like FUSE_IOCTL_COMPAT_X32 and the documentation should say that it implies 64bit time values. Thanks, Miklos