Re: warning for EOPNOTSUPP vfs_copy_file_range

From: Amir Goldstein
Date: Fri May 20 2022 - 00:39:46 EST


On Fri, May 20, 2022 at 6:56 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> On Thu, May 19, 2022 at 04:53:15PM +0300, Amir Goldstein wrote:
>
> > Luis gave up on it, because no maintainer stepped up to take
> > the patch, but I think that is the right way to go.
> >
> > Maybe this bug report can raise awareness to that old patch.
> >
> > Al, could you have a look?
>
> IIRC, you had objections to that variant back then...

Right. But not about the "main" patch.
The patch had an "also" part:

The short-circuit code for the case where the copy length is zero has also
been dropped from the VFS code. This is because a zero size copy between
two files shall provide a clear indication on whether or not the
filesystem supports non-zero copies.

- if (len == 0)
- return 0;
-

Which would have been a regression for nfs client, because
nfs protocol treats length 0 from ->copy_file_range() as "copy everything":

https://lore.kernel.org/linux-fsdevel/CAOQ4uxgwcNwWEqYKBg3fMHD3aXOsYUmPeexBe9EVP9Nb53b-Hw@xxxxxxxxxxxxxx/

This api impedance should be fixed in the nfs client, but I'm
not sure if that was already done.

I will test and re-post Luis' patch without removing the short-circuit
unless Luis gets to it first.

BTW, IIRC, there were already LTP tests and man page fixes posted for
the copt_file_range() behavior change.

Thanks,
Amir.