summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_globals.c
diff options
context:
space:
mode:
authorNick Bowler <nbowler@draconx.ca>2018-12-17 09:35:27 -0800
committerDarrick J. Wong <darrick.wong@oracle.com>2018-12-18 10:55:21 -0800
commita9d25bde1e9b24161dd798e1d23eb7eb9674012a (patch)
tree798d03905e89ad49e0a22c0ff7d2f9344983a2ff /fs/xfs/xfs_globals.c
parent7ca860e3c1a74ad6bd8949364073ef1044cad758 (diff)
downloadlinux-a9d25bde1e9b24161dd798e1d23eb7eb9674012a.tar.bz2
xfs: Fix x32 ioctls when cmd numbers differ from ia32.
Several ioctl structs change size between native 32-bit (ia32) and x32 applications, because x32 follows the native 64-bit (amd64) integer alignment rules and uses 64-bit time_t. In these instances, the ioctl number changes so userspace simply gets -ENOTTY. This scenario can be handled by simply adding more cases. Looking at the different ioctls implemented here: - All the ones marked 'No size or alignment issue on any arch' should presumably all be fine. - All the ones under BROKEN_X86_ALIGNMENT are different under integer alignment rules. Since x32 matches amd64 here, we just need both sets of cases handled. - XFS_IOC_SWAPEXT has both integer alignment differences and time_t differences. Since x32 matches amd64 here, we need to add a case which calls the native implementation. - The remaining ioctls have neither 64-bit integers nor time_t, so x32 matches ia32 here and no change is required at this level. The bulkstat ioctl implementations have some pointer chasing which is handled separately. Signed-off-by: Nick Bowler <nbowler@draconx.ca> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_globals.c')
0 files changed, 0 insertions, 0 deletions