replace numeric messages with string error messages when
blk_execute_rq
fails. Also add printing of sense info.
Mike Christie suggested adding printing of sense info here
Signed-off-by: Rob Evers<revers@xxxxxxxxxx>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 27
++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c
b/drivers/scsi/device_handler/scsi_dh_alua.c
index 6fec9fe..58fdf64 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -24,6 +24,7 @@
#include<scsi/scsi.h>
#include<scsi/scsi_eh.h>
#include<scsi/scsi_dh.h>
+#include<scsi/scsi_dbg.h>
#define ALUA_DH_NAME "alua"
#define ALUA_DH_VER "1.3"
@@ -153,9 +154,12 @@ static int submit_std_inquiry(struct
scsi_device *sdev, struct alua_dh_data *h)
err = blk_execute_rq(rq->q, NULL, rq, 1);
if (err == -EIO) {
- sdev_printk(KERN_INFO, sdev,
- "%s: std inquiry failed with %x\n",
- ALUA_DH_NAME, rq->errors);
+ sdev_printk(KERN_INFO, sdev, "%s: std inquiry failed\n",
+ ALUA_DH_NAME);
+ scsi_show_result(rq->errors);
+ if (driver_byte(rq->errors)&& DRIVER_SENSE)
+ __scsi_print_sense("alua std_inquiry", rq->sense,
+ rq->sense_len);
h->senselen = rq->sense_len;
err = SCSI_DH_IO;
}
@@ -190,9 +194,12 @@ static int submit_vpd_inquiry(struct
scsi_device *sdev, struct alua_dh_data *h)
err = blk_execute_rq(rq->q, NULL, rq, 1);
if (err == -EIO) {
- sdev_printk(KERN_INFO, sdev,
- "%s: evpd inquiry failed with %x\n",
- ALUA_DH_NAME, rq->errors);
+ sdev_printk(KERN_INFO, sdev, "%s: evpd inquiry failed\n",
+ ALUA_DH_NAME);
+ scsi_show_result(rq->errors);
+ if (driver_byte(rq->errors)&& DRIVER_SENSE)
+ __scsi_print_sense("alua vpd_inquiry", rq->sense,
+ rq->sense_len);
h->senselen = rq->sense_len;
err = SCSI_DH_IO;
}
@@ -229,9 +236,11 @@ static unsigned submit_rtpg(struct
scsi_device *sdev, struct alua_dh_data *h)
err = blk_execute_rq(rq->q, NULL, rq, 1);
if (err == -EIO) {
- sdev_printk(KERN_INFO, sdev,
- "%s: rtpg failed with %x\n",
- ALUA_DH_NAME, rq->errors);
+ sdev_printk(KERN_INFO, sdev, "%s: rtpg failed\n", ALUA_DH_NAME);
+ scsi_show_result(rq->errors);
+ if (driver_byte(rq->errors)&& DRIVER_SENSE)
+ __scsi_print_sense("alua submit_rtpg", rq->sense,
+ rq->sense_len);
h->senselen = rq->sense_len;
err = SCSI_DH_IO;
}