On 2020/11/7 2:03, Eric Biggers wrote:
On Fri, Nov 06, 2020 at 02:53:31PM +0800, Chao Yu wrote:+#if defined(__KERNEL__) +struct compat_f2fs_gc_range { + u32 sync; + compat_u64 start; + compat_u64 len; +};There's no need to use '#if defined(__KERNEL__)' in kernel source files. Likewise for compat_f2fs_move_range.
Correct.
+static int f2fs_compat_ioc_gc_range(struct file *file, unsigned long arg) +{ + struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(file)); + struct compat_f2fs_gc_range __user *urange; + struct f2fs_gc_range range; + int err; + + if (unlikely(f2fs_cp_error(sbi))) + return -EIO; + if (!f2fs_is_checkpoint_ready(sbi)) + return -ENOSPC;I still don't understand why this checkpoint-related stuff is getting added here, and only to the compat versions of the ioctls. It wasn't in the original version. If they are needed then they should be added to __f2fs_ioc_gc_range() and __f2fs_ioc_move_range() (preferably by a separate patch) so that they are
If so, cp-related stuff will be checked redundantly in both f2fs_ioctl() and __f2fs_ioc_xxx() function for native GC_RANGE and MOVE_RANGE ioctls, it's not needed.
Thanks,
done for both the native and compat versions of these ioctls. - Eric _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
