return io_u;
}
-char *librpma_fio_client_errdetails(struct io_u *io_u)
+char *librpma_fio_client_errdetails(struct thread_data *td, struct io_u *io_u)
{
/* get the string representation of an error */
enum ibv_wc_status status = io_u->error;
struct io_u *librpma_fio_client_event(struct thread_data *td, int event);
-char *librpma_fio_client_errdetails(struct io_u *io_u);
+char *librpma_fio_client_errdetails(struct thread_data *td, struct io_u *io_u);
static inline int librpma_fio_client_io_read(struct thread_data *td,
struct io_u *io_u, int flags)
* Build an error string with details about the driver, host or scsi
* error contained in the sg header Caller will use as necessary.
*/
-static char *fio_sgio_errdetails(struct io_u *io_u)
+static char *fio_sgio_errdetails(struct thread_data *td, struct io_u *io_u)
{
struct sg_io_hdr *hdr = &io_u->hdr;
#define MAXERRDETAIL 1024
zbd_log_err(td, io_u);
if (td->io_ops->errdetails) {
- char *err = td->io_ops->errdetails(io_u);
+ char *err = td->io_ops->errdetails(td, io_u);
log_err("fio: %s\n", err);
free(err);
#include "zbd_types.h"
#include "dataplacement.h"
-#define FIO_IOOPS_VERSION 35
+#define FIO_IOOPS_VERSION 36
#ifndef CONFIG_DYNAMIC_ENGINES
#define FIO_STATIC static
int (*commit)(struct thread_data *);
int (*getevents)(struct thread_data *, unsigned int, unsigned int, const struct timespec *);
struct io_u *(*event)(struct thread_data *, int);
- char *(*errdetails)(struct io_u *);
+ char *(*errdetails)(struct thread_data *, struct io_u *);
int (*cancel)(struct thread_data *, struct io_u *);
void (*cleanup)(struct thread_data *);
int (*open_file)(struct thread_data *, struct fio_file *);