Anna Schumaker <anna.schuma...@netapp.com> writes:

> @@ -1338,34 +1362,26 @@ ssize_t vfs_copy_file_range(struct file *file_in, 
> loff_t pos_in,
>                           struct file *file_out, loff_t pos_out,
>                           size_t len, unsigned int flags)
>  {
> -     struct inode *inode_in;
> -     struct inode *inode_out;
>       ssize_t ret;
>  
> -     if (flags)
> +     /* Flags should only be used exclusively. */
> +     if ((flags & COPY_FR_COPY) && (flags & ~COPY_FR_COPY))
> +             return -EINVAL;
> +     if ((flags & COPY_FR_REFLINK) && (flags & ~COPY_FR_REFLINK))
> +             return -EINVAL;
> +     if ((flags & COPY_FR_DEDUP) && (flags & ~COPY_FR_DEDUP))
>               return -EINVAL;
>  

Do you also need:

   if (flags & ~(COPY_FR_COPY | COPY_FR_REFLINK | COPY_FR_DEDUP))
        return -EINVAL;

so that future user-space can test if the kernel supports new flags?

NeilBrown

Attachment: signature.asc
Description: PGP signature

Reply via email to