summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Duncan <lduncan@suse.com>2022-02-08 10:47:20 -0800
committerGitHub <noreply@github.com>2022-02-08 10:47:20 -0800
commit6ab490f8fcea4b1522b8960a6efd49663f909265 (patch)
tree09263698a01adcc8a7f86db0a67ca1a82e0805a4
parent68c04a3bb0c0506566cbe6f884f4d9f612636350 (diff)
parent88fa76cec740cc44b7c4b9b384a87ef6c1288174 (diff)
downloadopen-iscsi-6ab490f8fcea4b1522b8960a6efd49663f909265.tar.gz
Merge pull request #301 from wenchao-hao/fix_multiple_sync
Fix multiple sync of a same session id
-rw-r--r--usr/initiator.c4
-rw-r--r--usr/iscsid.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/usr/initiator.c b/usr/initiator.c
index 684647c..4ec00b0 100644
--- a/usr/initiator.c
+++ b/usr/initiator.c
@@ -2012,6 +2012,10 @@ iscsi_sync_session(node_rec_t *rec, queue_task_t *qtask, uint32_t sid)
struct iscsi_transport *t;
int err;
+ session = session_find_by_sid(sid);
+ if (session != NULL)
+ return ISCSI_ERR_SESS_EXISTS;
+
t = iscsi_sysfs_get_transport_by_name(rec->iface.transport_name);
if (!t)
return ISCSI_ERR_TRANS_NOT_FOUND;
diff --git a/usr/iscsid.c b/usr/iscsid.c
index 478c83d..e5bd1f5 100644
--- a/usr/iscsid.c
+++ b/usr/iscsid.c
@@ -289,7 +289,10 @@ retry:
retries++;
sleep(1);
goto retry;
+ } else if (rc == ISCSI_ERR_SESS_EXISTS) {
+ log_debug(1, "sync session %d returned ISCSI_ERR_SESS_EXISTS", info->sid);
}
+
return 0;
}