diff options
-rw-r--r-- | source3/lib/dbwrap_ctdb.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source3/lib/dbwrap_ctdb.c b/source3/lib/dbwrap_ctdb.c index 0c5e624411..1cccecbad9 100644 --- a/source3/lib/dbwrap_ctdb.c +++ b/source3/lib/dbwrap_ctdb.c @@ -199,6 +199,21 @@ static NTSTATUS db_ctdb_delete(struct db_record *rec) } +static NTSTATUS db_ctdb_delete_persistent(struct db_record *rec) +{ + TDB_DATA data; + + /* + * We have to store the header with empty data. TODO: Fix the + * tdb-level cleanup + */ + + ZERO_STRUCT(data); + + return db_ctdb_store_persistent(rec, data, 0); + +} + static int db_ctdb_record_destr(struct db_record* data) { struct db_ctdb_rec *crec = talloc_get_type_abort( @@ -274,10 +289,11 @@ again: if (persistent) { result->store = db_ctdb_store_persistent; + result->delete_rec = db_ctdb_delete_persistent; } else { result->store = db_ctdb_store; + result->delete_rec = db_ctdb_delete; } - result->delete_rec = db_ctdb_delete; talloc_set_destructor(result, db_ctdb_record_destr); ctdb_data = tdb_fetch(ctx->wtdb->tdb, key); |