Skip to contentSkip to conversation

cciss: use lun reset not target reset

PATCH In review Stephen M. Cameron 2 participants 2 messages Jan 7, 2013 – Apr 10, 2013 Block layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cciss: use lun reset not target reset

From: Stephen M. Cameron <[email protected]>

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.

---
 drivers/block/cciss.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/block/cciss.c +2 -2
index 6526157..64d1d82 100644
@@ -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;
Acked-by on v1 1/1
#1 lore raw

almost the same patch has been accepted for hpsa so

Quoted 42 lines · Stephen M. Cameron

From: Stephen M. Cameron <[email protected]>

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.

---
 drivers/block/cciss.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/block/cciss.c +2 -3
index 6526157..64d1d82 100644
@@ -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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/