From bb29f6419d8532ed3c2f165d0fe7679d60cfb466 Mon Sep 17 00:00:00 2001 From: Mike Christie Date: Tue, 22 May 2018 03:02:41 -0500 Subject: [PATCH] libtcmu: log failed commands when debug is set In debug mode log failed commands. Signed-off-by: Mike Christie --- libtcmu.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libtcmu.c b/libtcmu.c index 04f347d5..f6a80a96 100644 --- a/libtcmu.c +++ b/libtcmu.c @@ -1024,11 +1024,15 @@ struct tcmulib_cmd *tcmulib_get_next_command(struct tcmu_device *dev) return NULL; } -static int tcmu_sts_to_scsi(int tcmu_sts, uint8_t *sense) +static int tcmu_sts_to_scsi(struct tcmu_device *dev, int tcmu_sts, + uint8_t *sense, uint8_t *cdb) { - switch (tcmu_sts) { - case TCMU_STS_OK: + if (tcmu_sts == TCMU_STS_OK) return SAM_STAT_GOOD; + + tcmu_dev_dbg(dev, "Completing 0x%x with status %d\n", cdb[0], tcmu_sts); + + switch (tcmu_sts) { case TCMU_STS_NO_RESOURCE: return SAM_STAT_TASK_SET_FULL; /* @@ -1158,7 +1162,8 @@ void tcmulib_command_complete( ent->hdr.cmd_id = cmd->cmd_id; } - ent->rsp.scsi_status = tcmu_sts_to_scsi(result, cmd->sense_buf); + ent->rsp.scsi_status = tcmu_sts_to_scsi(dev, result, cmd->sense_buf, + cmd->cdb); if (ent->rsp.scsi_status == SAM_STAT_CHECK_CONDITION) { memcpy(ent->rsp.sense_buffer, cmd->sense_buf, TCMU_SENSE_BUFFERSIZE);