Re: open-iscsi-synchronize-startup-settings

2011-08-26 Thread Foo Bar
Hi,

On Aug 17, 2:07 pm, s...@i3.noreply.com wrote:
 From e7e8d62b02361c05e857cd87a68855725c3a72c7 Mon Sep 17 00:00:00 2001
 From: Hannes Reinecke h...@suse.de
 Date: Fri, 17 Jul 2009 16:00:39 +0200
 Subject: [PATCH] Synchronize startup settings

does not apply against current git tree. This one does:

--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -1585,6 +1585,26 @@ static int exec_node_op(int op, int do_login,
int do_logout,
set_param.value = value;

rc = for_each_matched_rec(rec, set_param, idbm_node_set_param);
+
+   /*
+   * Compat hack:
+   * node.startup and node.conn[0].startup must be kept
+   * in sync so as not to confuse --loginall and --logoutall
+   */
+   if (!strcmp(name, node.startup)) {
+   log_debug(1, synch node.conn[0].startup mode);
+   set_param.name = node.conn[0].startup;
+   set_param.value = value;
+   rc = for_each_matched_rec(rec, set_param, 
idbm_node_set_param);
+   }
+
+   if (!strcmp(name, node.conn[0].startup)) {
+   log_debug(1, synch node.startup modes);
+   set_param.name = node.startup;
+   set_param.value = value;
+   rc = for_each_matched_rec(rec, set_param, 
idbm_node_set_param);
+   }
+
goto out;
} else if (op == OP_DELETE) {
rc = for_each_matched_rec(rec, NULL, delete_node);

Best regards,

Craig

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.



[PATCH] open-iscsi-synchronize-startup-settings

2011-08-17 Thread sb
From e7e8d62b02361c05e857cd87a68855725c3a72c7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke h...@suse.de
Date: Fri, 17 Jul 2009 16:00:39 +0200
Subject: [PATCH] Synchronize startup settings

The iscsi node settings contain two 'startup' settings, one for
the node and one for the connection. However, as MC/S is not
supported both settings have the same effect.
And if both of them are set differently the --loginall and
--logoutall code will match against _both_, leading to
erratic behaviour.

So we should make sure that both of them are always in synch
to avoid these errors.

References: bnc#514273

Signed-off-by: Hannes Reinecke h...@suse.de
---
 usr/iscsiadm.c |   25 -
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
index 3fa4964..5311b2c 100644
--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -1899,8 +1899,31 @@ static int exec_node_op(int op, int do_login, int 
do_logout,
set_param.name = name;
set_param.value = value;
 
-   if (for_each_rec(rec, set_param, idbm_node_set_param)) 
+   if (for_each_rec(rec, set_param, idbm_node_set_param))
rc = -1;
+
+   /*
+* Compat hack:
+* node.startup and node.conn[0].startup must be kept
+* in sync so as not to confuse --loginall and --logoutall
+*/
+   if (!strcmp(name, node.startup)) {
+   log_debug(1, synch node.conn[0].startup mode);
+   set_param.name = node.conn[0].startup;
+   set_param.value = value;
+   if (for_each_rec(rec, set_param,
+idbm_node_set_param))
+   rc = -1;
+   }
+   if (!strcmp(name, node.conn[0].startup)) {
+   log_debug(1, synch node.startup modes);
+   set_param.name = node.startup;
+   set_param.value = value;
+   if (for_each_rec(rec, set_param,
+idbm_node_set_param))
+   rc = -1;
+   }
+
goto out;
} else if (op == OP_DELETE) {
if (for_each_rec(rec, NULL, delete_node))
-- 
1.6.0.2

-- 
You received this message because you are subscribed to the Google Groups 
open-iscsi group.
To post to this group, send email to open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.