From 694b26d43369a6aa3d5d998898ae960381cc327b Mon Sep 17 00:00:00 2001 From: Manish Rangankar Date: Tue, 7 Aug 2012 07:57:15 -0400 Subject: [PATCH] --- yaml --- r: 328799 b: refs/heads/master c: 80c53e649d23c3eedb5047c4dcbe8a70b9f99202 h: refs/heads/master i: 328797: 52912b4497b13c9ecbf87d7e0e6ccad49ba7713f 328795: 42e38c2b25569e794ff4501a5843fad8fa38de53 328791: 0357ce8926371f4fea257b01095b040bb5bac8ba 328783: c9236c7c4b6fd19eae4447b78ff5d29de8a16507 328767: e058e7fbf7e491003624ed00c9fb8cdba6bd2fd2 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/qla4xxx/ql4_os.c | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f6e650202a9e..2135a9a6f66b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 26fdf92297ee5142513b72678a19bcb3f686bb20 +refs/heads/master: 80c53e649d23c3eedb5047c4dcbe8a70b9f99202 diff --git a/trunk/drivers/scsi/qla4xxx/ql4_os.c b/trunk/drivers/scsi/qla4xxx/ql4_os.c index 77a969a4b375..9c3442db7ee7 100644 --- a/trunk/drivers/scsi/qla4xxx/ql4_os.c +++ b/trunk/drivers/scsi/qla4xxx/ql4_os.c @@ -3168,6 +3168,7 @@ int qla4xxx_unblock_ddb(struct iscsi_cls_session *cls_session) struct iscsi_session *sess; struct ddb_entry *ddb_entry; struct scsi_qla_host *ha; + int status = QLA_SUCCESS; sess = cls_session->dd_data; ddb_entry = sess->dd_data; @@ -3175,11 +3176,20 @@ int qla4xxx_unblock_ddb(struct iscsi_cls_session *cls_session) ql4_printk(KERN_INFO, ha, "scsi%ld: %s: ddb[%d]" " unblock user space session\n", ha->host_no, __func__, ddb_entry->fw_ddb_index); - iscsi_conn_start(ddb_entry->conn); - iscsi_conn_login_event(ddb_entry->conn, - ISCSI_CONN_STATE_LOGGED_IN); - return QLA_SUCCESS; + if (!iscsi_is_session_online(cls_session)) { + iscsi_conn_start(ddb_entry->conn); + iscsi_conn_login_event(ddb_entry->conn, + ISCSI_CONN_STATE_LOGGED_IN); + } else { + ql4_printk(KERN_INFO, ha, + "scsi%ld: %s: ddb[%d] session [%d] already logged in\n", + ha->host_no, __func__, ddb_entry->fw_ddb_index, + cls_session->sid); + status = QLA_ERROR; + } + + return status; } static void qla4xxx_relogin_all_devices(struct scsi_qla_host *ha)