summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-22 08:47:39 +0000
committerglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-22 08:47:39 +0000
commit072ed558d5b27f484ba4fb65f5e778ffad54d951 (patch)
tree32364bcebfff775b2f38abf879f815b9b965aec3 /io.c
parent161f4a511ad01c0e7f013b03aae6afd4c386b1df (diff)
io.c: ignore EPERM
* io.c (nogvl_copy_file_range): ignore EPERM and fallback to sendfile(2) or read/write. copy_file_range(2) may not exist even if __NR_copy_file_range is defined in the build environment. [Bug #14207] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/io.c b/io.c
index f2d1f84be8..1aa5a0e72a 100644
--- a/io.c
+++ b/io.c
@@ -10783,6 +10783,8 @@ nogvl_copy_file_range(struct copy_stream_struct *stp)
}
switch (errno) {
case EINVAL:
+ case EPERM: /* copy_file_range(2) doesn't exist (may happen in
+ docker container) */
#ifdef ENOSYS
case ENOSYS:
#endif