engines/sg: Make I/O error messages more informative
authorBart Van Assche <bart.vanassche@wdc.com>
Wed, 4 Apr 2018 20:45:54 +0000 (13:45 -0700)
committerBart Van Assche <bart.vanassche@wdc.com>
Wed, 4 Apr 2018 20:50:23 +0000 (13:50 -0700)
Ensure that if an I/O error is encountered that not only the error
number but also a textual error message and the engine name are
reported. Without this patch, SG error messages look like this:

fio: pid=12803, err=5/

With this patch applied SG I/O error messages change into:

fio: pid=12803, err=5/file:engines/sg.c:290, func=fio_sgio_doio, error=Input/output error

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
engines/sg.c

index 72eed8b30741dcad3def977fbb929280f2debdfb..c2c0de39ef82903464f728f3e4ea489de993f538 100644 (file)
@@ -287,11 +287,11 @@ static int fio_sgio_doio(struct thread_data *td, struct io_u *io_u, int do_sync)
 
        if (f->filetype == FIO_TYPE_BLOCK) {
                ret = fio_sgio_ioctl_doio(td, f, io_u);
 
        if (f->filetype == FIO_TYPE_BLOCK) {
                ret = fio_sgio_ioctl_doio(td, f, io_u);
-               td->error = io_u->error;
+               td_verror(td, io_u->error, __func__);
        } else {
                ret = fio_sgio_rw_doio(f, io_u, do_sync);
                if (do_sync)
        } else {
                ret = fio_sgio_rw_doio(f, io_u, do_sync);
                if (do_sync)
-                       td->error = io_u->error;
+                       td_verror(td, io_u->error, __func__);
        }
 
        return ret;
        }
 
        return ret;