From: Jens Axboe Date: Mon, 2 Apr 2007 08:36:59 +0000 (+0200) Subject: splice engine: return negative for error X-Git-Tag: fio-1.15.1~4 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=b4ba5f302c467dc10c8b89459a8cb97d2958f359;hp=bab3fd58530027a67df288783f4a70759b3c84b7 splice engine: return negative for error Otherwise fio_splice_queue() will think it has handle errno number of bytes. Signed-off-by: Jens Axboe --- diff --git a/engines/splice.c b/engines/splice.c index 59bf7e4f..6d843538 100644 --- a/engines/splice.c +++ b/engines/splice.c @@ -48,7 +48,7 @@ static int fio_splice_read(struct thread_data *td, struct io_u *io_u) if (errno == ENODATA || errno == EAGAIN) continue; - return errno; + return -errno; } buflen -= ret; @@ -56,7 +56,7 @@ static int fio_splice_read(struct thread_data *td, struct io_u *io_u) while (ret) { ret2 = read(sd->pipe[0], p, ret); if (ret2 < 0) - return errno; + return -errno; ret -= ret2; p += ret2; @@ -90,7 +90,7 @@ static int fio_splice_write(struct thread_data *td, struct io_u *io_u) ret = vmsplice(sd->pipe[1], iov, 1, SPLICE_F_NONBLOCK); if (ret < 0) - return errno; + return -errno; iov[0].iov_len -= ret; iov[0].iov_base += ret; @@ -98,7 +98,7 @@ static int fio_splice_write(struct thread_data *td, struct io_u *io_u) while (ret) { ret2 = splice(sd->pipe[0], NULL, f->fd, &off, ret, 0); if (ret2 < 0) - return errno; + return -errno; ret -= ret2; }