diff options
author | Amitay Isaacs <amitay@gmail.com> | 2013-07-30 12:45:01 +1000 |
---|---|---|
committer | Amitay Isaacs <amitay@gmail.com> | 2013-08-01 11:08:25 +1000 |
commit | f15e1a28a7874a7ef2af4282045bdac66212dcc3 (patch) | |
tree | bf81e12c283509315e83f06a352beb74a243171c /ctdb/client | |
parent | e44c38dc4533cc8e2a822d4589d9cc04d31f49ce (diff) | |
download | samba-f15e1a28a7874a7ef2af4282045bdac66212dcc3.tar.gz samba-f15e1a28a7874a7ef2af4282045bdac66212dcc3.tar.xz samba-f15e1a28a7874a7ef2af4282045bdac66212dcc3.zip |
recoverd: Use correct tdb flags when creating missing databases
When creating missing databases either locally or remotely, make sure
to use the correct tdb flags from other nodes. Without this, volatile
databases can get attached without TDB_INCOMPATIBLE_HASH flag.
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
(This used to be ctdb commit 10a057d8e15c8c18e540598a940d3548c731b0b4)
Diffstat (limited to 'ctdb/client')
-rw-r--r-- | ctdb/client/ctdb_client.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c index e801c0138ee..ebd448ccbfd 100644 --- a/ctdb/client/ctdb_client.c +++ b/ctdb/client/ctdb_client.c @@ -1781,19 +1781,21 @@ int ctdb_ctrl_getdbhealth(struct ctdb_context *ctdb, /* create a database */ -int ctdb_ctrl_createdb(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, - TALLOC_CTX *mem_ctx, const char *name, bool persistent) +int ctdb_ctrl_createdb(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, + TALLOC_CTX *mem_ctx, const char *name, uint32_t tdb_flags) { int ret; int32_t res; TDB_DATA data; + bool persistent; data.dptr = discard_const(name); data.dsize = strlen(name)+1; - ret = ctdb_control(ctdb, destnode, 0, - persistent?CTDB_CONTROL_DB_ATTACH_PERSISTENT:CTDB_CONTROL_DB_ATTACH, - 0, data, + persistent = (tdb_flags & CTDB_DB_FLAGS_PERSISTENT); + ret = ctdb_control(ctdb, destnode, 0, + persistent?CTDB_CONTROL_DB_ATTACH_PERSISTENT:CTDB_CONTROL_DB_ATTACH, + tdb_flags, data, mem_ctx, &data, &res, &timeout, NULL); if (ret != 0 || res != 0) { |