Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Sep 2020 09:45:34 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   RFC: copy_file_range(3)
Message-ID:  <CAOtMX2iFZZpoj%2Bap21rrju4hJoip6ZoyxEiCB8852NeH7DAN0Q@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
copy_file_range(2) is nifty, but it has a few sharp edges:
1) Certain file systems don't support it, necessitating a write/read based
fallback
2) It doesn't handle sparse files as well as SEEK_HOLE/SEEK_DATA
3) It's slightly tricky to both efficiently deal with holes and also
promptly respond to signals

These problems aren't terribly hard, but it seems to me like most
applications that use copy_file_range would share the exact same
solutions.  In particular, I'm thinking about cp(1), dd(1), and
install(8).  Those three could benefit from sharing a userland wrapper that
handles the above problems.

Should we add such a wrapper to libc?  If so, what should it be called, and
should it be public or just private to /usr/src ?

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2iFZZpoj%2Bap21rrju4hJoip6ZoyxEiCB8852NeH7DAN0Q>