From: Ronnie Sahlberg Date: Mon, 9 Jul 2007 07:40:15 +0000 (+1000) Subject: nicer handling of DISCONNECTED flag when we update the node flags from X-Git-Tag: tevent-0.9.20~348^2~2462^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a859723912fd4c204007a136d6b82b5cc4145081;p=thirdparty%2Fsamba.git nicer handling of DISCONNECTED flag when we update the node flags from a remote message (This used to be ctdb commit 9a50ad22be61a09761ffda89de91ef3221917c84) --- 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);