mirror of
https://github.com/golang/go
synced 2024-11-05 18:36:08 +00:00
internal/poll: treat copy_file_range EIO as not-handled
Fixes #42334 Change-Id: Ife51df4e7d2539a04393abfdec45e3f902975fca Reviewed-on: https://go-review.googlesource.com/c/go/+/266940 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
5ca43acdb3
commit
633f9e2060
1 changed files with 4 additions and 1 deletions
|
@ -41,7 +41,7 @@ func CopyFileRange(dst, src *FD, remain int64) (written int64, handled bool, err
|
|||
// use copy_file_range(2) again.
|
||||
atomic.StoreInt32(©FileRangeSupported, 0)
|
||||
return 0, false, nil
|
||||
case syscall.EXDEV, syscall.EINVAL, syscall.EOPNOTSUPP, syscall.EPERM:
|
||||
case syscall.EXDEV, syscall.EINVAL, syscall.EIO, syscall.EOPNOTSUPP, syscall.EPERM:
|
||||
// Prior to Linux 5.3, it was not possible to
|
||||
// copy_file_range across file systems. Similarly to
|
||||
// the ENOSYS case above, if we see EXDEV, we have
|
||||
|
@ -53,6 +53,9 @@ func CopyFileRange(dst, src *FD, remain int64) (written int64, handled bool, err
|
|||
// file. This is another case where no data has been
|
||||
// transfered, so we consider it unhandled.
|
||||
//
|
||||
// If src and dst are on CIFS, we can see EIO.
|
||||
// See issue #42334.
|
||||
//
|
||||
// If the file is on NFS, we can see EOPNOTSUPP.
|
||||
// See issue #40731.
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue