aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla4xxx')
-rw-r--r--drivers/scsi/qla4xxx/ql4_init.c4
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c7
2 files changed, 5 insertions, 6 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c
index d692c713416a..cbe0a17ced5f 100644
--- a/drivers/scsi/qla4xxx/ql4_init.c
+++ b/drivers/scsi/qla4xxx/ql4_init.c
@@ -5,6 +5,7 @@
5 * See LICENSE.qla4xxx for copyright and licensing details. 5 * See LICENSE.qla4xxx for copyright and licensing details.
6 */ 6 */
7 7
8#include <scsi/iscsi_if.h>
8#include "ql4_def.h" 9#include "ql4_def.h"
9#include "ql4_glbl.h" 10#include "ql4_glbl.h"
10#include "ql4_dbg.h" 11#include "ql4_dbg.h"
@@ -1305,7 +1306,8 @@ int qla4xxx_process_ddb_changed(struct scsi_qla_host *ha,
1305 atomic_set(&ddb_entry->relogin_timer, 0); 1306 atomic_set(&ddb_entry->relogin_timer, 0);
1306 clear_bit(DF_RELOGIN, &ddb_entry->flags); 1307 clear_bit(DF_RELOGIN, &ddb_entry->flags);
1307 clear_bit(DF_NO_RELOGIN, &ddb_entry->flags); 1308 clear_bit(DF_NO_RELOGIN, &ddb_entry->flags);
1308 iscsi_if_create_session_done(ddb_entry->conn); 1309 iscsi_session_event(ddb_entry->sess,
1310 ISCSI_KEVENT_CREATE_SESSION);
1309 /* 1311 /*
1310 * Change the lun state to READY in case the lun TIMEOUT before 1312 * Change the lun state to READY in case the lun TIMEOUT before
1311 * the device came back. 1313 * the device came back.
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 89460d27c689..f55b9f7d9396 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -298,8 +298,7 @@ void qla4xxx_destroy_sess(struct ddb_entry *ddb_entry)
298 return; 298 return;
299 299
300 if (ddb_entry->conn) { 300 if (ddb_entry->conn) {
301 iscsi_if_destroy_session_done(ddb_entry->conn); 301 atomic_set(&ddb_entry->state, DDB_STATE_DEAD);
302 iscsi_destroy_conn(ddb_entry->conn);
303 iscsi_remove_session(ddb_entry->sess); 302 iscsi_remove_session(ddb_entry->sess);
304 } 303 }
305 iscsi_free_session(ddb_entry->sess); 304 iscsi_free_session(ddb_entry->sess);
@@ -309,6 +308,7 @@ int qla4xxx_add_sess(struct ddb_entry *ddb_entry)
309{ 308{
310 int err; 309 int err;
311 310
311 ddb_entry->sess->recovery_tmo = ddb_entry->ha->port_down_retry_count;
312 err = iscsi_add_session(ddb_entry->sess, ddb_entry->fw_ddb_index); 312 err = iscsi_add_session(ddb_entry->sess, ddb_entry->fw_ddb_index);
313 if (err) { 313 if (err) {
314 DEBUG2(printk(KERN_ERR "Could not add session.\n")); 314 DEBUG2(printk(KERN_ERR "Could not add session.\n"));
@@ -321,9 +321,6 @@ int qla4xxx_add_sess(struct ddb_entry *ddb_entry)
321 DEBUG2(printk(KERN_ERR "Could not add connection.\n")); 321 DEBUG2(printk(KERN_ERR "Could not add connection.\n"));
322 return -ENOMEM; 322 return -ENOMEM;
323 } 323 }
324
325 ddb_entry->sess->recovery_tmo = ddb_entry->ha->port_down_retry_count;
326 iscsi_if_create_session_done(ddb_entry->conn);
327 return 0; 324 return 0;
328} 325}
329 326