diff options
author | Colin Walters <walters@verbum.org> | 2017-08-02 14:32:06 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2017-08-08 21:16:34 -0400 |
commit | d18f026ee7316bc2dde291c55db49b69dcb76df3 (patch) | |
tree | 15c180b5b37cf313ac40118a9bcf0fb068c3fa07 /glnx-console.c | |
parent | 29ad99c9b6103853e6d6bf42fa7bff335eb114a8 (diff) | |
download | libglnx-d18f026ee7316bc2dde291c55db49b69dcb76df3.tar.gz |
fdio: Merge systemd code to use copy_file_range(), use FICLONE
FICLONE is the new alias for the formerly btrfs-specific ioctl; XFS
has experimental patches to support it.
Further, we should use copy_file_range() for the case where we're only doing a
limited copy. Both NFS and XFS (with reflink enabled) understand it.
Part of the reason I'm doing this is so that ostree's `/etc` merge will start
using XFS reflinks. But another major reason is to take the next step after and
copy this code into GLib as well, so that all of the general GLib users will
benefit; e.g. Nautilus will transparently do server copy offloads with NFS home
directories.
See also this coreutils thread about `copy_file_range()`:
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24399>. I don't care about file
holes for our use cases, so it's fine.
Other changes while I'm here:
- Tweak the sendfile() case to match the newly inlined logic for cfr
- Add a TEMP_FAILURE_RETRY() around the read()
Diffstat (limited to 'glnx-console.c')
0 files changed, 0 insertions, 0 deletions