hpsa: return failed from device reset/abort handlers
Returning failed from the device reset handler will get the device kicked offline, which is fine if the controller is locked up anyhow. Cannot abort a command from a failed controller. Reviewed-by: Scott Teel <scott.teel@pmcs.com> Reviewed-by: Justin Lindley <justin.lindley@pmcs.com> Signed-off-by: Don Brace <don.brace@pmcs.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Родитель
407863cb9d
Коммит
e345893bd4
|
@ -4343,6 +4343,10 @@ static int hpsa_eh_device_reset_handler(struct scsi_cmnd *scsicmd)
|
|||
h = sdev_to_hba(scsicmd->device);
|
||||
if (h == NULL) /* paranoia */
|
||||
return FAILED;
|
||||
|
||||
if (lockup_detected(h))
|
||||
return FAILED;
|
||||
|
||||
dev = scsicmd->device->hostdata;
|
||||
if (!dev) {
|
||||
dev_err(&h->pdev->dev, "hpsa_eh_device_reset_handler: "
|
||||
|
@ -4566,6 +4570,9 @@ static int hpsa_eh_abort_handler(struct scsi_cmnd *sc)
|
|||
"ABORT REQUEST FAILED, Controller lookup failed.\n"))
|
||||
return FAILED;
|
||||
|
||||
if (lockup_detected(h))
|
||||
return FAILED;
|
||||
|
||||
/* Check that controller supports some kind of task abort */
|
||||
if (!(HPSATMF_PHYS_TASK_ABORT & h->TMFSupportFlags) &&
|
||||
!(HPSATMF_LOG_TASK_ABORT & h->TMFSupportFlags))
|
||||
|
|
Загрузка…
Ссылка в новой задаче