[PATCH] io.c: use copy_file_range with every types of files
IO.copy_stream only attempt to use
copy_file_range if the source is a regular file.
However from my understanding, contrary to
copy_file_range has no file type restriction, it should be able to copy from and to sockets and pipes just fine.
It does have very optimized paths for regular files on specific file systems, but for other
fd types it will fallback to do the copy using the page cache:
If the function is absent or returns failure, the kernel will, if the COPY_FR_COPY flag is set, fall back to copying through the page cache.
So if it's available, it's preferable to
GitHub PR: https://github.com/ruby/ruby/pull/1932