scsi: ipr: Remove redundant initialization
authorBrian King <brking@linux.vnet.ibm.com>
Wed, 15 Mar 2017 21:58:37 +0000 (16:58 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 23 Mar 2017 16:04:05 +0000 (12:04 -0400)
Removes some code in __ipr_eh_dev_reset which was modifying the ipr_cmd
done function. This should have already been setup at command allocation
time and if its since been changed, it means we are in the ipr_erp*
functions and need to wait for them to complete and don't want to
override that here.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Reviewed-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>
Tested-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ipr.c

index 0688e0a..0d780c9 100644 (file)
@@ -5243,12 +5243,11 @@ static int __ipr_eh_dev_reset(struct scsi_cmnd *scsi_cmd)
                spin_lock(&hrrq->_lock);
                list_for_each_entry(ipr_cmd, &hrrq->hrrq_pending_q, queue) {
                        if (ipr_cmd->ioarcb.res_handle == res->res_handle) {
-                               if (ipr_cmd->scsi_cmd)
-                                       ipr_cmd->done = ipr_scsi_eh_done;
-                               if (ipr_cmd->qc)
-                                       ipr_cmd->done = ipr_sata_eh_done;
-                               if (ipr_cmd->qc &&
-                                   !(ipr_cmd->qc->flags & ATA_QCFLAG_FAILED)) {
+                               if (!ipr_cmd->qc)
+                                       continue;
+
+                               ipr_cmd->done = ipr_sata_eh_done;
+                               if (!(ipr_cmd->qc->flags & ATA_QCFLAG_FAILED)) {
                                        ipr_cmd->qc->err_mask |= AC_ERR_TIMEOUT;
                                        ipr_cmd->qc->flags |= ATA_QCFLAG_FAILED;
                                }