[SCM] CTDB repository - branch master updated - ctdb-2.1-147-ge143abd
Amitay Isaacs
amitay at samba.org
Wed May 8 22:52:22 MDT 2013
The branch, master has been updated
via e143abd16ccde2e0edfe103673d31a5fb06b6aef (commit)
via 45c776958017ea7001f061842c9e0f60e4a25f23 (commit)
from d0a3822573db296e73cc897835f783c8abc084b3 (commit)
http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e143abd16ccde2e0edfe103673d31a5fb06b6aef
Author: Martin Schwenke <martin at meltin.net>
Date: Thu May 9 12:53:48 2013 +1000
recoverd: Move IP flags into ctdb_takeover.c
These should never be seen outside the IP allocation code.
Signed-off-by: Martin Schwenke <martin at meltin.net>
commit 45c776958017ea7001f061842c9e0f60e4a25f23
Author: Martin Schwenke <martin at meltin.net>
Date: Thu May 9 12:51:57 2013 +1000
recoverd: Clear IP flags after IP allocation algorithm has run
If these flags are left set they will confuse other recovery daemon
code.
Factor the clearing code into new function clear_ipflags().
Signed-off-by: Martin Schwenke <martin at meltin.net>
Pair-programmed-with: Amitay Isaacs <amitay at gmail.com>
-----------------------------------------------------------------------
Summary of changes:
include/ctdb_protocol.h | 5 -----
server/ctdb_takeover.c | 28 +++++++++++++++++++++++-----
2 files changed, 23 insertions(+), 10 deletions(-)
Changeset truncated at 500 lines:
diff --git a/include/ctdb_protocol.h b/include/ctdb_protocol.h
index 3133b4e..09ce01a 100644
--- a/include/ctdb_protocol.h
+++ b/include/ctdb_protocol.h
@@ -584,11 +584,6 @@ struct ctdb_node_map {
#define NODE_FLAGS_DISABLED (NODE_FLAGS_UNHEALTHY|NODE_FLAGS_PERMANENTLY_DISABLED)
#define NODE_FLAGS_INACTIVE (NODE_FLAGS_DELETED|NODE_FLAGS_DISCONNECTED|NODE_FLAGS_BANNED|NODE_FLAGS_STOPPED)
-/* These flags are ONLY valid within the recovery daemon */
-#define NODE_FLAGS_NOIPTAKEOVER 0x01000000 /* can not takeover additional IPs */
-#define NODE_FLAGS_NOIPHOST 0x02000000 /* can not host IPs */
-
-
/*
* Node capabilities
*/
diff --git a/server/ctdb_takeover.c b/server/ctdb_takeover.c
index 3ba7dc3..24c6298 100644
--- a/server/ctdb_takeover.c
+++ b/server/ctdb_takeover.c
@@ -33,6 +33,12 @@
#define CTDB_ARP_INTERVAL 1
#define CTDB_ARP_REPEAT 3
+/* These flags are ONLY valid within IP allocation code and must be
+ * cleared to avoid confusing other recovery daemon functions
+ */
+#define NODE_FLAGS_NOIPTAKEOVER 0x01000000 /* can not takeover additional IPs */
+#define NODE_FLAGS_NOIPHOST 0x02000000 /* can not host IPs */
+
struct ctdb_iface {
struct ctdb_iface *prev, *next;
const char *name;
@@ -2281,6 +2287,17 @@ static uint32_t *get_tunable_from_nodes(struct ctdb_context *ctdb,
return tvals;
}
+static void clear_ipflags(struct ctdb_node_map *nodemap)
+{
+ int i;
+
+ for (i=0;i<nodemap->num;i++) {
+ nodemap->nodes[i].flags &=
+ ~(NODE_FLAGS_NOIPTAKEOVER|NODE_FLAGS_NOIPHOST);
+ }
+}
+
+
/* Set internal flags for IP allocation:
* Clear ip flags
* Set NOIPTAKOVER ip flags from per-node NoIPTakeover tunable
@@ -2296,11 +2313,7 @@ static void set_ipflags_internal(struct ctdb_node_map *nodemap,
{
int i;
- /* Clear IP flags */
- for (i=0;i<nodemap->num;i++) {
- nodemap->nodes[i].flags &=
- ~(NODE_FLAGS_NOIPTAKEOVER|NODE_FLAGS_NOIPHOST);
- }
+ clear_ipflags(nodemap);
for (i=0;i<nodemap->num;i++) {
/* Can not take IPs on node with NoIPTakeover set */
@@ -2400,6 +2413,11 @@ int ctdb_takeover_run(struct ctdb_context *ctdb, struct ctdb_node_map *nodemap,
/* Do the IP reassignment calculations */
ctdb_takeover_run_core(ctdb, nodemap, &all_ips);
+ /* The IP flags need to be cleared because they should never
+ * be seen outside the IP allocation code.
+ */
+ clear_ipflags(nodemap);
+
/* The recovery daemon does regular sanity checks of the IPs.
* However, sometimes it is overzealous and thinks changes are
* required when they're already underway. This stops the
--
CTDB repository
More information about the samba-cvs
mailing list