https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293028

Alan Somers <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #2 from Alan Somers <[email protected]> ---
CC rmacklem, who's done so much work on copy_file_range.

copy_file_range is definitely not supposed to be one-shot.  Its man page says
"It is interruptible on most file systems" and "If it succeeds, the call
returns the number of bytes copied, which can be fewer than len."

And cp definitely does not assume that copy_file_range is one-shot.  You can
see that there's a loop in bin/cp/utils.c: 207.

So I think there one of two things must be going on:

* Either cp isn't handling an EINTR return value correctly, and is wrongly
exiting from the loop, or

* fusefs's VOP_COPY_FILE_RANGE implementation is returning EINTR when it really
should be returning a short operation instead.

I think the first problem is likelier.  But a reproduction case would be
helpful.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to