cciss: use lun reset not target reset
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
@@ -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;
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.
Signed-off-by Stephen M. Cameron <[email protected]>--- drivers/block/cciss.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)drivers/block/cciss.c +2
-3@@ -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/