X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Fopen.c;h=f7d6b3c5f3e5dbe356d9b842fcb1c30c36e93800;hb=f2a1247955c1b376469a5e37c9583a1bbfd4dc61;hp=473dc98b7e4c68d78da0be268c5434ab70042b3a;hpb=6fdff621a98f161701f79b3da64e461feaa21952;p=ccan diff --git a/ccan/tdb2/open.c b/ccan/tdb2/open.c index 473dc98b..f7d6b3c5 100644 --- a/ccan/tdb2/open.c +++ b/ccan/tdb2/open.c @@ -107,6 +107,7 @@ static enum TDB_ERROR tdb_new_database(struct tdb_context *tdb, tdb->hash_priv); newdb.hdr.recovery = 0; newdb.hdr.features_used = newdb.hdr.features_offered = TDB_FEATURE_MASK; + newdb.hdr.seqnum = 0; memset(newdb.hdr.reserved, 0, sizeof(newdb.hdr.reserved)); /* Initial hashes are empty. */ memset(newdb.hdr.hashtable, 0, sizeof(newdb.hdr.hashtable)); @@ -208,6 +209,7 @@ struct tdb_context *tdb_open(const char *name, int tdb_flags, tdb->transaction = NULL; tdb->stats = NULL; tdb->access = NULL; + tdb->last_error = TDB_SUCCESS; tdb->file = NULL; tdb_hash_init(tdb); tdb_io_init(tdb); @@ -243,7 +245,7 @@ struct tdb_context *tdb_open(const char *name, int tdb_flags, } if (tdb_flags & ~(TDB_INTERNAL | TDB_NOLOCK | TDB_NOMMAP | TDB_CONVERT - | TDB_NOSYNC)) { + | TDB_NOSYNC | TDB_SEQNUM)) { ecode = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR, "tdb_open: unknown flags %u", tdb_flags); goto fail; @@ -452,7 +454,7 @@ fail_errno: #ifdef TDB_TRACE close(tdb->tracefd); #endif - free((char *)tdb->name); + free(cast_const(char *, tdb->name)); if (tdb->file) { tdb_unlock_all(tdb); if (--tdb->file->refcnt == 0) { @@ -493,7 +495,7 @@ int tdb_close(struct tdb_context *tdb) else tdb_munmap(tdb->file); } - free((char *)tdb->name); + free(cast_const(char *, tdb->name)); if (tdb->file) { struct tdb_file **i;