|
@@ -147,15 +147,15 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
|
|
|
struct invalidate_command_table *inv_tbl;
|
|
|
struct be_dma_mem nonemb_cmd;
|
|
|
unsigned int cid, tag, i, num_invalidate;
|
|
|
- int rc = FAILED;
|
|
|
|
|
|
/* invalidate iocbs */
|
|
|
cls_session = starget_to_session(scsi_target(sc->device));
|
|
|
session = cls_session->dd_data;
|
|
|
spin_lock_bh(&session->lock);
|
|
|
- if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN)
|
|
|
- goto unlock;
|
|
|
-
|
|
|
+ if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) {
|
|
|
+ spin_unlock_bh(&session->lock);
|
|
|
+ return FAILED;
|
|
|
+ }
|
|
|
conn = session->leadconn;
|
|
|
beiscsi_conn = conn->dd_data;
|
|
|
phba = beiscsi_conn->phba;
|
|
@@ -208,9 +208,6 @@ static int beiscsi_eh_device_reset(struct scsi_cmnd *sc)
|
|
|
pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
|
|
|
nonemb_cmd.va, nonemb_cmd.dma);
|
|
|
return iscsi_eh_device_reset(sc);
|
|
|
-unlock:
|
|
|
- spin_unlock_bh(&session->lock);
|
|
|
- return rc;
|
|
|
}
|
|
|
|
|
|
static ssize_t beiscsi_show_boot_tgt_info(void *data, int type, char *buf)
|