Blame SOURCES/0024-reconnect-do-not-initialize-iscsi-to-old_iscsi-use-old_iscsi-if-appropriate.patch

dc245c
reconnect: do not initialize iscsi to old_iscsi, use old_iscsi if appropriate
dc245c
dc245c
Message-id: <1383729402-27559-6-git-send-email-pbonzini@redhat.com>
dc245c
Patchwork-id: 55500
dc245c
O-Subject: [PATCH 05/11] reconnect: do not initialize iscsi to old_iscsi, use old_iscsi if appropriate
dc245c
Bugzilla: 1026820
dc245c
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
dc245c
RH-Acked-by: Orit Wasserman <owasserm@redhat.com>
dc245c
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
dc245c
dc245c
Makes it clearer that logging has to be done on the existing context,
dc245c
since the "iscsi" pointer will not survive iscsi_reconnect.
dc245c
dc245c
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
dc245c
(cherry picked from commit c3e8d0c9454835074ebcc6971618b2e71bb948c4)
dc245c
dc245c
Conflicts:
dc245c
	lib/connect.c
dc245c
---
dc245c
 lib/connect.c | 18 +++++++++---------
dc245c
 1 file changed, 9 insertions(+), 9 deletions(-)
dc245c
diff --git a/lib/connect.c b/lib/connect.c
dc245c
index 0d4c957..d6a8759 100644
dc245c
--- a/lib/connect.c
dc245c
+++ b/lib/connect.c
dc245c
@@ -217,22 +217,22 @@ void iscsi_defer_reconnect(struct iscsi_context *iscsi)
dc245c
 
dc245c
 int iscsi_reconnect(struct iscsi_context *old_iscsi)
dc245c
 {
dc245c
-	struct iscsi_context *iscsi = old_iscsi;
dc245c
+	struct iscsi_context *iscsi;
dc245c
 
dc245c
 	/* if there is already a deferred reconnect do not try again */
dc245c
-	if (iscsi->reconnect_deferred) {
dc245c
-		ISCSI_LOG(iscsi, 2, "reconnect initiated, but reconnect is already deferred");
dc245c
+	if (old_iscsi->reconnect_deferred) {
dc245c
+		ISCSI_LOG(old_iscsi, 2, "reconnect initiated, but reconnect is already deferred");
dc245c
 		return -1;
dc245c
 	}
dc245c
 
dc245c
-	ISCSI_LOG(iscsi, 2, "reconnect initiated");
dc245c
+	ISCSI_LOG(old_iscsi, 2, "reconnect initiated");
dc245c
 
dc245c
 	/* This is mainly for tests, where we do not want to automatically
dc245c
 	   reconnect but rather want the commands to fail with an error
dc245c
 	   if the target drops the session.
dc245c
 	 */
dc245c
-	if (iscsi->no_auto_reconnect) {
dc245c
-		iscsi_defer_reconnect(iscsi);
dc245c
+	if (old_iscsi->no_auto_reconnect) {
dc245c
+		iscsi_defer_reconnect(old_iscsi);
dc245c
 		return 0;
dc245c
 	}
dc245c
 
dc245c
@@ -288,7 +288,7 @@ try_again:
dc245c
 		if (backoff > 30) {
dc245c
 			backoff=30;
dc245c
 		}
dc245c
-		ISCSI_LOG(iscsi, 1, "reconnect try %d failed, waiting %d seconds",retry,backoff);
dc245c
+		ISCSI_LOG(old_iscsi, 1, "reconnect try %d failed, waiting %d seconds", retry, backoff);
dc245c
 		iscsi_destroy_context(iscsi);
dc245c
 		sleep(backoff);
dc245c
 		retry++;
dc245c
@@ -356,11 +356,11 @@ try_again:
dc245c
 	iscsi->mallocs+=old_iscsi->mallocs;
dc245c
 	iscsi->frees+=old_iscsi->frees;
dc245c
 
dc245c
-	ISCSI_LOG(iscsi, 2, "reconnect was successful");
dc245c
-
dc245c
 	memcpy(old_iscsi, iscsi, sizeof(struct iscsi_context));
dc245c
 	free(iscsi);
dc245c
 
dc245c
+	ISCSI_LOG(old_iscsi, 2, "reconnect was successful");
dc245c
+
dc245c
 	old_iscsi->is_reconnecting = 0;
dc245c
 	old_iscsi->last_reconnect = time(NULL);
dc245c