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.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to