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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to