r->hdr.length = len + msglen;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_ERROR;
r->hdr.destnode = hdr->srcnode;
r->hdr.srcnode = ctdb->vnn;
r->hdr.length = sizeof(*r);
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_REDIRECT;
r->hdr.destnode = c->hdr.srcnode;
r->hdr.srcnode = ctdb->vnn;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_DMASTER;
r->hdr.destnode = new_dmaster;
r->hdr.srcnode = ctdb->vnn;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REQ_DMASTER;
r->hdr.destnode = lmaster;
r->hdr.srcnode = ctdb->vnn;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_CALL;
r->hdr.destnode = hdr->srcnode;
r->hdr.srcnode = hdr->destnode;
state->c->hdr.length = len;
state->c->hdr.ctdb_magic = CTDB_MAGIC;
state->c->hdr.ctdb_version = CTDB_VERSION;
+ state->c->hdr.generation= ctdb_db->ctdb->vnn_map->generation;
state->c->hdr.operation = CTDB_REQ_CALL;
state->c->hdr.destnode = header->dmaster;
/*
c->hdr.ctdb_magic = CTDB_MAGIC;
c->hdr.ctdb_version = CTDB_VERSION;
c->hdr.operation = CTDB_REQ_CALL;
+ c->hdr.generation= ctdb->vnn_map->generation;
/* this limits us to 16k outstanding messages - not unreasonable */
c->hdr.reqid = ctdb_reqid_new(ctdb, state);
c->flags = call->flags;
c.hdr.length = sizeof(c);
c.hdr.ctdb_magic = CTDB_MAGIC;
c.hdr.ctdb_version = CTDB_VERSION;
+ c.hdr.generation = ctdb->vnn_map->generation;
c.hdr.operation = CTDB_REQ_REGISTER;
c.srvid = srvid;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REQ_MESSAGE;
r->hdr.destnode = vnn;
r->hdr.srcnode = ctdb->vnn;
r.hdr.length = sizeof(r);
r.hdr.ctdb_magic = CTDB_MAGIC;
r.hdr.ctdb_version = CTDB_VERSION;
+ r.hdr.generation= ctdb->vnn_map->generation;
r.hdr.operation = CTDB_REQ_CONNECT_WAIT;
DEBUG(3,("ctdb_connect_wait: sending to ctdbd\n"));
r.hdr.length = len;
r.hdr.ctdb_magic = CTDB_MAGIC;
r.hdr.ctdb_version = CTDB_VERSION;
+ r.hdr.generation = ctdb->vnn_map->generation;
r.hdr.operation = CTDB_REQ_SHUTDOWN;
r.hdr.reqid = 0;
c->hdr.length = len;
c->hdr.ctdb_magic = CTDB_MAGIC;
c->hdr.ctdb_version = CTDB_VERSION;
+ c->hdr.generation = ctdb->vnn_map->generation;
c->hdr.operation = CTDB_REQ_CONTROL;
c->hdr.reqid = state->reqid;
c->hdr.destnode = destnode;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation = ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_CONTROL;
r->hdr.destnode = hdr->srcnode;
r->hdr.srcnode = ctdb->vnn;
c->hdr.length = len;
c->hdr.ctdb_magic = CTDB_MAGIC;
c->hdr.ctdb_version = CTDB_VERSION;
+ c->hdr.generation= ctdb->vnn_map->generation;
c->hdr.operation = CTDB_REQ_CONTROL;
c->hdr.destnode = destnode;
c->hdr.srcnode = ctdb->vnn;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REQ_MESSAGE;
r->srvid = srvid;
r->datalen = data.dsize;
rf->hdr.length = len;
rf->hdr.ctdb_magic = CTDB_MAGIC;
rf->hdr.ctdb_version = CTDB_VERSION;
+ rf->hdr.generation= ctdb->vnn_map->generation;
rf->hdr.operation = CTDB_REQ_FINISHED;
rf->hdr.destnode = node;
rf->hdr.srcnode = ctdb->vnn;
r.hdr.length = sizeof(r);
r.hdr.ctdb_magic = CTDB_MAGIC;
r.hdr.ctdb_version = CTDB_VERSION;
+ r.hdr.generation= client->ctdb->vnn_map->generation;
r.hdr.operation = CTDB_REPLY_CONNECT_WAIT;
r.vnn = ctdb_get_vnn(client->ctdb);
r.num_connected = client->ctdb->num_connected;
r->hdr.length = length;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation = client->ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_CALL;
r->hdr.reqid = dstate->reqid;
r->datalen = dstate->call->reply_data.dsize;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REPLY_CONTROL;
r->hdr.reqid = state->reqid;
r->status = status;
r->hdr.length = len;
r->hdr.ctdb_magic = CTDB_MAGIC;
r->hdr.ctdb_version = CTDB_VERSION;
+ r->hdr.generation= ctdb->vnn_map->generation;
r->hdr.operation = CTDB_REQ_MESSAGE;
r->hdr.destnode = vnn;
r->hdr.srcnode = ctdb->vnn;
r.hdr.length = sizeof(r);
r.hdr.ctdb_magic = CTDB_MAGIC;
r.hdr.ctdb_version = CTDB_VERSION;
+ r.hdr.generation = 1;
r.hdr.operation = CTDB_REQ_REGISTER;
r.srvid = pid;
req.hdr.length = sizeof(req);
req.hdr.ctdb_magic = CTDB_MAGIC;
req.hdr.ctdb_version = CTDB_VERSION;
+ req.hdr.generation = 1;
req.hdr.operation = CTDB_REQ_CONNECT_WAIT;
/* XXX must deal with partial writes here */
r.hdr.length = len;
r.hdr.ctdb_magic = CTDB_MAGIC;
r.hdr.ctdb_version = CTDB_VERSION;
+ r.hdr.generation = 1;
r.hdr.operation = CTDB_REQ_MESSAGE;
r.hdr.destnode = vnn;
r.hdr.srcnode = ourvnn;
req->hdr.length = len;
req->hdr.ctdb_magic = CTDB_MAGIC;
req->hdr.ctdb_version = CTDB_VERSION;
+ req->hdr.generation = 1;
req->hdr.operation = CTDB_REQ_CALL;
req->hdr.reqid = 1;
uint32_t length;
uint32_t ctdb_magic;
uint32_t ctdb_version;
+ uint32_t generation;
uint32_t operation;
uint32_t destnode;
uint32_t srcnode;