Re: [PATCH] fuse: Add ioctl flag for x32 compat ioctl

From: Miklos Szeredi
Date: Wed Apr 24 2019 - 10:27:58 EST


On Wed, Apr 24, 2019 at 4:14 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. 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_X32` and sets it if the 32-bit requesting
> process is using the x32 ABI. This allows the server process to
> distinguish between requests from requesting client processes using IA32
> emulation or the x32 ABI and so infer the size of the client process's
> `time_t` type and any other IA32/x32 differences.

Thanks, applied.

Miklos