Re: [PATCH] btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 10, 2024 at 08:58:26AM +1030, Qu Wenruo wrote:
> Add extra sanity check for btrfs_ioctl_defrag_range_args::flags.
> 
> This is not really to enhance fuzzing tests, but as a preparation for
> future expansion on btrfs_ioctl_defrag_range_args.
> 
> In the future we're adding new members, allowing more fine tuning for
> btrfs defrag.
> Without the -ENONOTSUPP error, there would be no way to detect if the
> kernel supports those new defrag features.
> 
> cc: stable@xxxxxxxxxxxxxxx #4.14+
> Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>

Added to misc-next, thanks.

> ---
>  fs/btrfs/ioctl.c           | 4 ++++
>  include/uapi/linux/btrfs.h | 2 ++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index a1743904202b..3a846b983b28 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -2608,6 +2608,10 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp)
>  				ret = -EFAULT;
>  				goto out;
>  			}
> +			if (range.flags & ~BTRFS_DEFRAG_RANGE_FLAGS_SUPP) {
> +				ret = -EOPNOTSUPP;

This should be EINVAL, this is for invalid parameter values or
combinations, EOPNOTSUPP would be for the whole ioctl as not supported.




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux