tdb2: unify tdb1_wipe into tdb_wipe.
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 13 Sep 2011 22:32:13 +0000 (08:02 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 13 Sep 2011 22:32:13 +0000 (08:02 +0930)
Switch on the TDB_VERSION1 flag.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit b2555a868e3ee58d1b31f9558e3623d49ed2b2f1)

lib/tdb2/private.h
lib/tdb2/tdb1.h
lib/tdb2/traverse.c

index 71ef07538ecfbdea2bd2df6703672d83347f0dd2..f4fba85d3ef7e3c2c68ae776f3223835bb2f9d82 100644 (file)
@@ -693,6 +693,7 @@ enum TDB_ERROR tdb1_parse_record(struct tdb_context *tdb, TDB_DATA key,
                                 void *private_data);
 void tdb1_increment_seqnum_nonblock(struct tdb_context *tdb);
 int tdb1_get_seqnum(struct tdb_context *tdb);
+int tdb1_wipe_all(struct tdb_context *tdb);
 
 /* tdb1_transaction.c: */
 int tdb1_transaction_start(struct tdb_context *tdb);
index 90cd7fa14abb9058629e22037ac676bc983609ac..3d9fcd70a466659b0291acab135891c76194d915 100644 (file)
@@ -42,8 +42,6 @@ uint64_t tdb1_incompatible_hash(const void *key, size_t len, uint64_t seed, void
 
 /* @} ******************************************************************/
 
-/* wipe and repack */
-int tdb1_wipe_all(struct tdb_context *tdb);
 int tdb1_repack(struct tdb_context *tdb);
 
 extern TDB_DATA tdb1_null;
index b27550032f323fd94cafbae142ad103c329fe199..b1897ce1b8ba19f524eb87fb3a5837106a5293da 100644 (file)
@@ -115,6 +115,12 @@ enum TDB_ERROR tdb_wipe_all(struct tdb_context *tdb)
        enum TDB_ERROR ecode;
        int64_t count;
 
+       if (tdb->flags & TDB_VERSION1) {
+               if (tdb1_wipe_all(tdb) == -1)
+                       return tdb->last_error;
+               return TDB_SUCCESS;
+       }
+
        ecode = tdb_allrecord_lock(tdb, F_WRLCK, TDB_LOCK_WAIT, false);
        if (ecode != TDB_SUCCESS)
                return tdb->last_error = ecode;