svn commit: r365643 - head/bin/cp

Alan Somers asomers at freebsd.org
Sat Sep 19 18:00:12 UTC 2020


On Fri, Sep 11, 2020 at 3:52 PM Rick Macklem <rmacklem at uoguelph.ca> wrote:

> Konstantin Belousov wrote:
> >On Fri, Sep 11, 2020 at 08:49:36PM +0000, Alan Somers wrote:
> >> Author: asomers
> >> Date: Fri Sep 11 20:49:36 2020
> >> New Revision: 365643
> >> URL: https://svnweb.freebsd.org/changeset/base/365643
> >>
> >> Log:
> >>   cp: fall back to read/write if copy_file_range fails
> >>
> >>   Even though copy_file_range has a file-system agnostic version, it
> still
> >>   fails on devfs (perhaps because the file descriptor is non-seekable?)
> In
> >>   that case, fallback to old-fashioned read/write. Fixes
> >>   "cp /dev/null /tmp/null"
> >
> >Devices are seekable.
> >
> >The reason for EINVAL is that vn_copy_file_range() checks that both in
> and out
> >vnodes are VREG.  For devfs, they are VCHR.
>
> I coded the syscall to the Linux man page, which states that EINVAL is
> returned
> if either fd does not refer to a regular file.
> Having said that, I do not recall testing the VCHR case under Linux. (ie.
> It might
> actually work and the man page turns out to be incorrect?)
>
> I will test this case under Linux when I get home next week, rick
>

Since there's no standard, I think it's fine for us to support devfs if
possible.


More information about the svn-src-all mailing list