commit:     dad9cce8a1e2360e8483e0f78e29e20bd5fdce49
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 16 00:37:40 2017 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 00:38:18 2017 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=dad9cce8

file_copy: handle EOPNOTSUPP from copy_file_range (bug 641088)

NFS can set the errno to EOPNOTSUPP for copy_file_range.

Bug: https://bugs.gentoo.org/641088

 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 81aae873a..352342c06 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) &&
+                    if ((errno == EXDEV || errno == ENOSYS || errno == 
EOPNOTSUPP) &&
                         copyfunc == cfr_wrapper) {
                         /* Use sendfile instead of copy_file_range for
                          * cross-device copies, or when the copy_file_range

Reply via email to