[SCSI] qla4xxx: Fixed device blocked issue on link up-down.
authorManish Rangankar <manish.rangankar@qlogic.com>
Fri, 7 Oct 2011 23:55:48 +0000 (16:55 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 16 Oct 2011 16:10:45 +0000 (11:10 -0500)
Devices are getting blocked during continuous link up and down.
Solution is, during relogin unblock the session, using iscsi_conn_start,
before sending connection logged in event.

JIRA Key: UPSISCSI-138

Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla4xxx/ql4_init.c
drivers/scsi/qla4xxx/ql4_os.c

index cc10bac..3075fba 100644 (file)
@@ -900,6 +900,7 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha, uint32_t fw_ddb_index,
                switch (state) {
                case DDB_DS_SESSION_ACTIVE:
                case DDB_DS_DISCOVERY:
+                       iscsi_conn_start(ddb_entry->conn);
                        iscsi_conn_login_event(ddb_entry->conn,
                                               ISCSI_CONN_STATE_LOGGED_IN);
                        qla4xxx_update_session_conn_param(ha, ddb_entry);
@@ -935,6 +936,7 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha, uint32_t fw_ddb_index,
                switch (state) {
                case DDB_DS_SESSION_ACTIVE:
                case DDB_DS_DISCOVERY:
+                       iscsi_conn_start(ddb_entry->conn);
                        iscsi_conn_login_event(ddb_entry->conn,
                                               ISCSI_CONN_STATE_LOGGED_IN);
                        qla4xxx_update_session_conn_param(ha, ddb_entry);
index af83e6f..205ecaf 100644 (file)
@@ -1165,7 +1165,6 @@ static int qla4xxx_conn_start(struct iscsi_cls_conn *cls_conn)
                      ddb_entry->fw_ddb_device_state));
 
 exit_set_param:
-       iscsi_conn_start(cls_conn);
        ret = 0;
 
 exit_conn_start: