Commit 5effbca6 authored by Brian King's avatar Brian King Committed by Christoph Hellwig

[PATCH] ipr scsi busy io hang

Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent f455d910
...@@ -2884,6 +2884,7 @@ static int ipr_slave_alloc(struct scsi_device *sdev) ...@@ -2884,6 +2884,7 @@ static int ipr_slave_alloc(struct scsi_device *sdev)
(res->cfgte.res_addr.lun == sdev->lun)) { (res->cfgte.res_addr.lun == sdev->lun)) {
res->sdev = sdev; res->sdev = sdev;
res->add_to_ml = 0; res->add_to_ml = 0;
res->in_erp = 0;
sdev->hostdata = res; sdev->hostdata = res;
res->needs_sync_complete = 1; res->needs_sync_complete = 1;
break; break;
...@@ -3435,8 +3436,10 @@ static void ipr_erp_done(struct ipr_cmnd *ipr_cmd) ...@@ -3435,8 +3436,10 @@ static void ipr_erp_done(struct ipr_cmnd *ipr_cmd)
SCSI_SENSE_BUFFERSIZE); SCSI_SENSE_BUFFERSIZE);
} }
if (res) if (res) {
res->needs_sync_complete = 1; res->needs_sync_complete = 1;
res->in_erp = 0;
}
ipr_unmap_sglist(ioa_cfg, ipr_cmd); ipr_unmap_sglist(ioa_cfg, ipr_cmd);
list_add_tail(&ipr_cmd->queue, &ioa_cfg->free_q); list_add_tail(&ipr_cmd->queue, &ioa_cfg->free_q);
scsi_cmd->scsi_done(scsi_cmd); scsi_cmd->scsi_done(scsi_cmd);
...@@ -3756,6 +3759,7 @@ static void ipr_erp_start(struct ipr_ioa_cfg *ioa_cfg, ...@@ -3756,6 +3759,7 @@ static void ipr_erp_start(struct ipr_ioa_cfg *ioa_cfg,
ipr_erp_cancel_all(ipr_cmd); ipr_erp_cancel_all(ipr_cmd);
return; return;
} }
res->needs_sync_complete = 1;
break; break;
case IPR_IOASC_NR_INIT_CMD_REQUIRED: case IPR_IOASC_NR_INIT_CMD_REQUIRED:
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment