| Index: runtime/bin/file_linux.cc
|
| diff --git a/runtime/bin/file_linux.cc b/runtime/bin/file_linux.cc
|
| index 3114d01c0be8aba4161a2881c513190526393cc0..856ec0bd1dd14b61c4b69defceedc5cd7bd43fac 100644
|
| --- a/runtime/bin/file_linux.cc
|
| +++ b/runtime/bin/file_linux.cc
|
| @@ -245,6 +245,9 @@ bool File::Copy(const char* old_path, const char* new_path) {
|
| result = TEMP_FAILURE_RETRY(
|
| sendfile64(new_fd, old_fd, &offset, kMaxUint32));
|
| }
|
| + // From sendfile man pages:
|
| + // Applications may wish to fall back to read(2)/write(2) in the case
|
| + // where sendfile() fails with EINVAL or ENOSYS.
|
| if (result < 0 && (errno == EINVAL || errno == ENOSYS)) {
|
| const intptr_t kBufferSize = 8 * 1024;
|
| uint8_t buffer[kBufferSize];
|
|
|