diff options
author | 2020-11-10 09:24:37 +0800 | |
---|---|---|
committer | 2020-12-02 22:00:20 -0800 | |
commit | 34178b1bc4b5c936eab3adb4835578093095a571 (patch) | |
tree | fd0c92cffb66a580c21ef82119334ba0b3b94546 /fs/f2fs/super.c | |
parent | f2fs: avoid unneeded data copy in f2fs_ioc_move_range() (diff) | |
download | linux-34178b1bc4b5c936eab3adb4835578093095a571.tar.gz linux-34178b1bc4b5c936eab3adb4835578093095a571.tar.bz2 linux-34178b1bc4b5c936eab3adb4835578093095a571.zip |
f2fs: fix compat F2FS_IOC_{MOVE,GARBAGE_COLLECT}_RANGE
Eric reported a ioctl bug in below link:
https://lore.kernel.org/linux-f2fs-devel/20201103032234.GB2875@sol.localdomain/
That said, on some 32-bit architectures, u64 has only 32-bit alignment,
notably i386 and x86_32, so that size of struct f2fs_gc_range compiled
in x86_32 is 20 bytes, however the size in x86_64 is 24 bytes, binary
compiled in x86_32 can not call F2FS_IOC_GARBAGE_COLLECT_RANGE successfully
due to mismatched value of ioctl command in between binary and f2fs
module, similarly, F2FS_IOC_MOVE_RANGE will fail too.
In this patch we introduce two ioctls for compatibility of above special
32-bit binary:
- F2FS_IOC32_GARBAGE_COLLECT_RANGE
- F2FS_IOC32_MOVE_RANGE
Reported-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/super.c')
0 files changed, 0 insertions, 0 deletions