[PATCH] cciss: use lun reset not target reset

From: Stephen M. Cameron
Date: Mon Jan 07 2013 - 10:30:19 EST


From: Stephen M. Cameron <scameron@xxxxxxxxxxxxxxxxxx>

In the scsi part of the driver (for tape drives and medium changers)
the device reset error handler attempts to use a target reset rather
than a lun reset. If there is some shared tape drive library, this
could be potentially disruptive to other hosts trying to use the
tape library. Use lun reset instead to only reset the lun not the
whole target.

Signed-off-by: Stephen M. Cameron <scameron@xxxxxxxxxxxxxxxxxx>
---
drivers/block/cciss.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 6526157..64d1d82 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -2632,7 +2632,7 @@ static int fill_cmd(ctlr_info_t *h, CommandList_struct *c, __u8 cmd, void *buff,
c->Request.Timeout = 0;
memset(&c->Request.CDB[0], 0, sizeof(c->Request.CDB));
c->Request.CDB[0] = cmd; /* reset */
- c->Request.CDB[1] = CCISS_RESET_TYPE_TARGET;
+ c->Request.CDB[1] = CCISS_RESET_TYPE_LUN;
break;
case CCISS_NOOP_MSG:
c->Request.CDBLen = 1;
@@ -2674,7 +2674,7 @@ static int __devinit cciss_send_reset(ctlr_info_t *h, unsigned char *scsi3addr,
return -ENOMEM;
return_status = fill_cmd(h, c, CCISS_RESET_MSG, NULL, 0, 0,
CTLR_LUNID, TYPE_MSG);
- c->Request.CDB[1] = reset_type; /* fill_cmd defaults to target reset */
+ c->Request.CDB[1] = reset_type; /* fill_cmd defaults to lun reset */
if (return_status != IO_OK) {
cmd_special_free(h, c);
return return_status;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/