diff options
author | Manish Rangankar <manish.rangankar@qlogic.com> | 2011-10-07 19:55:48 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-10-16 12:10:45 -0400 |
commit | 5283bfb64e403d971bcb0718521a4ffe6cc24f5b (patch) | |
tree | fa48dc6ac78a147c3bbafb05c2cb61d776874e6c /drivers | |
parent | 98270ab45c0a5e533f253f04e0b617c98b5a6259 (diff) |
[SCSI] qla4xxx: Fixed device blocked issue on link up-down.
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_init.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_os.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c index cc10bacd1e18..3075fbaef553 100644 --- a/drivers/scsi/qla4xxx/ql4_init.c +++ b/drivers/scsi/qla4xxx/ql4_init.c | |||
@@ -900,6 +900,7 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha, uint32_t fw_ddb_index, | |||
900 | switch (state) { | 900 | switch (state) { |
901 | case DDB_DS_SESSION_ACTIVE: | 901 | case DDB_DS_SESSION_ACTIVE: |
902 | case DDB_DS_DISCOVERY: | 902 | case DDB_DS_DISCOVERY: |
903 | iscsi_conn_start(ddb_entry->conn); | ||
903 | iscsi_conn_login_event(ddb_entry->conn, | 904 | iscsi_conn_login_event(ddb_entry->conn, |
904 | ISCSI_CONN_STATE_LOGGED_IN); | 905 | ISCSI_CONN_STATE_LOGGED_IN); |
905 | qla4xxx_update_session_conn_param(ha, ddb_entry); | 906 | 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, | |||
935 | switch (state) { | 936 | switch (state) { |
936 | case DDB_DS_SESSION_ACTIVE: | 937 | case DDB_DS_SESSION_ACTIVE: |
937 | case DDB_DS_DISCOVERY: | 938 | case DDB_DS_DISCOVERY: |
939 | iscsi_conn_start(ddb_entry->conn); | ||
938 | iscsi_conn_login_event(ddb_entry->conn, | 940 | iscsi_conn_login_event(ddb_entry->conn, |
939 | ISCSI_CONN_STATE_LOGGED_IN); | 941 | ISCSI_CONN_STATE_LOGGED_IN); |
940 | qla4xxx_update_session_conn_param(ha, ddb_entry); | 942 | qla4xxx_update_session_conn_param(ha, ddb_entry); |
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index af83e6f3fe6f..205ecaf5438b 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c | |||
@@ -1165,7 +1165,6 @@ static int qla4xxx_conn_start(struct iscsi_cls_conn *cls_conn) | |||
1165 | ddb_entry->fw_ddb_device_state)); | 1165 | ddb_entry->fw_ddb_device_state)); |
1166 | 1166 | ||
1167 | exit_set_param: | 1167 | exit_set_param: |
1168 | iscsi_conn_start(cls_conn); | ||
1169 | ret = 0; | 1168 | ret = 0; |
1170 | 1169 | ||
1171 | exit_conn_start: | 1170 | exit_conn_start: |