Project

General

Profile

Feature #15006 ยป copy-file-range.patch

byroot (Jean Boussier), 08/18/2018 03:32 AM

View differences:

io.c
static int
nogvl_copy_file_range(struct copy_stream_struct *stp)
{
struct stat src_stat, dst_stat;
ssize_t ss;
int ret;
off_t copy_length, src_offset, *src_offset_ptr;
ret = fstat(stp->src_fd, &src_stat);
if (ret == -1) {
stp->syserr = "fstat";
stp->error_no = errno;
return -1;
}
if (!S_ISREG(src_stat.st_mode))
return 0;
ret = fstat(stp->dst_fd, &dst_stat);
if (ret == -1) {
stp->syserr = "fstat";
stp->error_no = errno;
return -1;
}
src_offset = stp->src_offset;
if (src_offset != (off_t)-1) {
src_offset_ptr = &src_offset;
......
copy_length = stp->copy_length;
if (copy_length == (off_t)-1) {
int ret;
struct stat src_stat;
ret = fstat(stp->src_fd, &src_stat);
if (ret == -1) {
stp->syserr = "fstat";
stp->error_no = errno;
return -1;
}
if (src_offset == (off_t)-1) {
off_t current_offset;
errno = 0;
    (1-1/1)