From a859723912fd4c204007a136d6b82b5cc4145081 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Mon, 9 Jul 2007 17:40:15 +1000 Subject: [PATCH] nicer handling of DISCONNECTED flag when we update the node flags from a remote message (This used to be ctdb commit 9a50ad22be61a09761ffda89de91ef3221917c84) --- ctdb/server/ctdb_recoverd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index 0a07244fe30..14808268782 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -1073,15 +1073,15 @@ static void monitor_handler(struct ctdb_context *ctdb, uint64_t srvid, can communicate with the node or not. */ c->flags &= ~NODE_FLAGS_DISCONNECTED; + if (nodemap->nodes[i].flags&NODE_FLAGS_DISCONNECTED) { + c->flags |= NODE_FLAGS_DISCONNECTED; + } - /* check whether the flags (except for the DISCONNECTED flag have changed */ - if ((nodemap->nodes[i].flags&(~NODE_FLAGS_DISCONNECTED)) != c->flags) { + if (nodemap->nodes[i].flags != c->flags) { DEBUG(0,("Node %u has changed flags - now 0x%x\n", c->vnn, c->flags)); } - /* Update the flags but leave the DISCONNECTED flag as is */ - nodemap->nodes[i].flags = c->flags - | (nodemap->nodes[i].flags&NODE_FLAGS_DISCONNECTED); + nodemap->nodes[i].flags = c->flags; ret = ctdb_ctrl_getrecmaster(ctdb, CONTROL_TIMEOUT(), CTDB_CURRENT_NODE, &ctdb->recovery_master); -- 2.47.3