blktrace: Pass a positive error code to td_verror()
authorBart Van Assche <bvanassche@acm.org>
Sat, 11 Jan 2020 23:58:26 +0000 (15:58 -0800)
committerBart Van Assche <bvanassche@acm.org>
Sun, 12 Jan 2020 02:17:37 +0000 (18:17 -0800)
This patch fixes the following Coverity complaint:

CID 183980 (#1-2 of 2): Argument cannot be negative (NEGATIVE_RETURNS)
13. negative_returns: ret is passed to a parameter that cannot be negative.

Fixes: e28875637094 ("blktrace support: speedup reading of data")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
blktrace.c

index 8a246613d43338d2f715dca0031dafbf164bcbef..f7a9ae3bc1f5f5c9e2195b2fc21e91d8ed6f4b0c 100644 (file)
@@ -28,8 +28,11 @@ static int refill_fifo(struct thread_data *td, struct fifo *fifo, int fd)
 
        ret = read(fd, buf, total);
        if (ret < 0) {
-               td_verror(td, errno, "read blktrace file");
-               return -1;
+               int read_err = errno;
+
+               assert(read_err > 0);
+               td_verror(td, read_err, "read blktrace file");
+               return -read_err;
        }
 
        if (ret > 0)
@@ -486,7 +489,7 @@ bool load_blktrace(struct thread_data *td, const char *filename, int need_swap)
                }
                ret = discard_pdu(td, fifo, fd, &t);
                if (ret < 0) {
-                       td_verror(td, ret, "blktrace lseek");
+                       td_verror(td, -ret, "blktrace lseek");
                        goto err;
                } else if (t.pdu_len != ret) {
                        log_err("fio: discarded %d of %d\n", ret, t.pdu_len);
@@ -663,7 +666,7 @@ read_skip:
            t_get_ddir(t) == DDIR_INVAL) {
                ret = discard_pdu(td, bc->fifo, bc->fd, t);
                if (ret < 0) {
-                       td_verror(td, ret, "blktrace lseek");
+                       td_verror(td, -ret, "blktrace lseek");
                        return ret;
                } else if (t->pdu_len != ret) {
                        log_err("fio: discarded %d of %d\n", ret,
@@ -755,7 +758,7 @@ int merge_blktrace_iologs(struct thread_data *td)
                /* skip over the pdu */
                ret = discard_pdu(td, bc->fifo, bc->fd, &bc->t);
                if (ret < 0) {
-                       td_verror(td, ret, "blktrace lseek");
+                       td_verror(td, -ret, "blktrace lseek");
                        goto err_file;
                } else if (bc->t.pdu_len != ret) {
                        log_err("fio: discarded %d of %d\n", ret,