Re: [f2fs-dev] [PATCH v4 2/2] f2fs: fix compat F2FS_IOC_{MOVE, GARBAGE_COLLECT}_RANGE

From: Eric Biggers
Date: Fri Nov 06 2020 - 13:03:29 EST


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.

> +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
done for both the native and compat versions of these ioctls.

- Eric