Issue #13866 has been updated by Glass_saga (Masaki Matsushita).

Status changed from Open to Rejected

Ś”uby-devęś£„ģ„eject

----------------------------------------
Feature #13866: Copy offloading in IO.copy_stream
https://bugs.ruby-lang.org/issues/13866#change-66480

* Author: Glass_saga (Masaki Matsushita)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 2.5
----------------------------------------
In linux 4.5, the copy offloading feature with copy_file_range(2) was introduced.
This patch enables IO.copy_stream to use it.
If "offload" keyword argument is specified, IO.copy_stream will try copy offloading.

```ruby
IO.copy_stream("src", "dst", offload: true)
```

If copy offloading is not available on the system, "offload" option will begnored.

When "src" and "dst" are not in the same filesystem, copy_file_range(2) must fail with EXDEV.
In this case, IO.copy_steram will fallback to another method (sendfile(2) or read/write) silently.

It depends on the filesystem what offloading techniques will be used.
Copy offloading is optional in IO.copy_stream because some techniques may change the current behavior.

---Files--------------------------------
patch.diff (7.21 KB)


-- 
https://bugs.ruby-lang.org/