Although EINVAL usually indicates a programming error, ecryptfs (and
possibly other stacked filesystems) returns EINVAL for attempts to
copy_file_range() or sendfile() between files on that filesystem.
Bug: https://gitlab.gnome.org/GNOME/libglnx/-/issues/3
Bug: https://github.com/ostreedev/ostree/issues/2525
Bug: https://github.com/flatpak/flatpak/issues/4673
Bug-Debian: https://bugs.debian.org/
1004467
Applied-upstream: libglnx commit:
24231a956a4b849087fbf01173cdebb53e1bd60b
Applied-upstream: libostree 2022.2, commit:
0ebf9d9f64647d0b8b95cda112c7854be6f58ed3
Gbp-Pq: Name Fall-back-if-copy_file_range-fails-with-EINVAL.patch
have_cfr = 0;
try_cfr = false;
}
- else if (G_IN_SET (errno, EXDEV, EOPNOTSUPP))
+ else if (G_IN_SET (errno, EXDEV, EINVAL, EOPNOTSUPP))
/* We won't try cfr again for this run, but let's be
* conservative and not mark it as available/unavailable until
* we know for sure.