Date: Sat, 07 Feb 2026 17:28:36 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 293028] About ENTR in cp(1), copy_file_range(2) and fuse filesystems Message-ID: <bug-293028-227-gd56P3vQao@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-293028-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293028 Alan Somers <asomers@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rmacklem@FreeBSD.org --- Comment #2 from Alan Somers <asomers@FreeBSD.org> --- 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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-293028-227-gd56P3vQao>
