• Ian Abbott's avatar
    fuse: Add ioctl flag for x32 compat ioctl · 6407f44a
    Ian Abbott authored
    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 coming from 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.
    Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    6407f44a
file.c 79 KB