On 1/2/19 8:55 PM, Michał Górny wrote: > On Wed, 2019-01-02 at 14:29 -0800, Zac Medico wrote: >> EXT4 can set the errno to EUCLEAN for copy_file_range. >> >> Bug: https://bugs.gentoo.org/674332 >> Signed-off-by: Zac Medico <zmed...@gentoo.org> >> --- >> src/portage_util_file_copy_reflink_linux.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/src/portage_util_file_copy_reflink_linux.c >> b/src/portage_util_file_copy_reflink_linux.c >> index 352342c06..1422232a5 100644 >> --- a/src/portage_util_file_copy_reflink_linux.c >> +++ b/src/portage_util_file_copy_reflink_linux.c >> @@ -271,7 +271,7 @@ _reflink_linux_file_copy(PyObject *self, PyObject *args) >> >> if (copyfunc_ret < 0) { >> error = errno; >> - if ((errno == EXDEV || errno == ENOSYS || errno == >> EOPNOTSUPP) && >> + if ((errno == EXDEV || errno == ENOSYS || errno == >> EOPNOTSUPP || errno == EUCLEAN) && >> copyfunc == cfr_wrapper) { >> /* Use sendfile instead of copy_file_range for >> * cross-device copies, or when the copy_file_range > > I'm pretty sure EUCLEAN is not portable to non-glibc/Linux systems. >
Good catch, added #ifdef EUCLEAN in v2. -- Thanks, Zac
signature.asc
Description: OpenPGP digital signature