Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 Feb 2026 16:49:02 +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@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

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

            Bug ID: 293028
           Summary: About ENTR in cp(1), copy_file_range(2) and fuse
                    filesystems
           Product: Base System
           Version: 16.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: cracauer@cons.org

I want to discuss this discrepancy as it currently exists in FreeBSD (all
versions).

cp(1) assumes that copy_file_range(2) is a one-shot. cp does not put a loop
around the system call dealing with EINTR.

However, this assumption is untrue at least on fuse filesystems. They can exit
copy_file_range(2) with EINTR, e.g. when one copy operation is underway and a
du(1) is executed simultaneously. This popped up at least twice on the FreeBSD
forums. cp(1) basically doesn't work at all in that situation, the users need
to use rsync instead. Which they don't know.

I am soliciting opinions about "who is right" here. We need to either loop
around copy_file_range=>EINTR or change fuse.

-- 
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>