*db_id = *(uint32_t *)data.dptr;
talloc_free(data.dptr);
- if (!(tdb_flags & TDB_SEQNUM)) {
- return 0;
- }
-
- data.dptr = (uint8_t *)db_id;
- data.dsize = sizeof(*db_id);
-
- ret = ctdbd_control_local(conn, CTDB_CONTROL_ENABLE_SEQNUM, 0, 0, data,
- NULL, NULL, &cstatus);
- if ((ret != 0) || cstatus != 0) {
- DEBUG(0, (__location__ " ctdb_control for enable seqnum "
- "failed: %s\n", strerror(ret)));
- return (ret == 0) ? EIO : ret;
- }
-
return 0;
}
struct db_ctdb_ctx *db_ctdb;
char *db_path;
struct loadparm_context *lp_ctx;
+ TDB_DATA data;
int32_t cstatus;
int ret;
return NULL;
}
+ if (tdb_flags & TDB_SEQNUM) {
+ data.dptr = (uint8_t *)&db_ctdb->db_id;
+ data.dsize = sizeof(db_ctdb->db_id);
+
+ ret = ctdbd_control_local(conn, CTDB_CONTROL_ENABLE_SEQNUM,
+ 0, 0, data,
+ NULL, NULL, &cstatus);
+ if ((ret != 0) || cstatus != 0) {
+ DBG_ERR("ctdb_control for enable seqnum "
+ "failed: %s\n", strerror(ret));
+ TALLOC_FREE(result);
+ return NULL;
+ }
+ }
+
db_path = ctdbd_dbpath(db_ctdb->conn, db_ctdb, db_ctdb->db_id);
result->persistent = ((tdb_flags & TDB_CLEAR_IF_FIRST) == 0);