From b4dbb3cece5de5ebc723253b05f69eff1a129a6d Mon Sep 17 00:00:00 2001 From: Vincent Fu Date: Wed, 25 Jul 2018 13:00:26 -0700 Subject: [PATCH] engines/sg: add cmdp and dxferp for trims to sg error string --- engines/sg.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/engines/sg.c b/engines/sg.c index 33e38c2b..800f4737 100644 --- a/engines/sg.c +++ b/engines/sg.c @@ -1110,6 +1110,23 @@ static char *fio_sgio_errdetails(struct io_u *io_u) snprintf(msgchunk, MAXMSGCHUNK, "SG Driver: %d bytes out of %d not transferred. ", hdr->resid, hdr->dxfer_len); strlcat(msg, msgchunk, MAXERRDETAIL); } + if (hdr->cmdp) { + strlcat(msg, "cdb:", MAXERRDETAIL); + for (i = 0; i < hdr->cmd_len; i++) { + snprintf(msgchunk, MAXMSGCHUNK, " %02x", hdr->cmdp[i]); + strlcat(msg, msgchunk, MAXERRDETAIL); + } + strlcat(msg, ". ", MAXERRDETAIL); + if (io_u->ddir == DDIR_TRIM) { + unsigned char *param_list = hdr->dxferp; + strlcat(msg, "dxferp:", MAXERRDETAIL); + for (i = 0; i < hdr->dxfer_len; i++) { + snprintf(msgchunk, MAXMSGCHUNK, " %02x", param_list[i]); + strlcat(msg, msgchunk, MAXERRDETAIL); + } + strlcat(msg, ". ", MAXERRDETAIL); + } + } } if (!(hdr->info & SG_INFO_CHECK) && !strlen(msg)) -- 2.25.1