From: Rusty Russell Date: Wed, 27 Apr 2011 11:18:39 +0000 (+0930) Subject: tdb2: allow multiple chain locks. X-Git-Url: https://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=dc9da1e34fe6a9d113fd57e116ebbc6d5bd54819 tdb2: allow multiple chain locks. It's probably not a good idea, because it's a recipe for deadlocks if anyone else grabs any *other* two chainlocks, or the allrecord lock, but SAMBA definitely does it, so allow it as TDB1 does. --- diff --git a/ccan/tdb2/lock.c b/ccan/tdb2/lock.c index 8a338cbe..4033d0af 100644 --- a/ccan/tdb2/lock.c +++ b/ccan/tdb2/lock.c @@ -378,12 +378,14 @@ static enum TDB_ERROR tdb_nest_lock(struct tdb_context *tdb, return TDB_SUCCESS; } +#if 0 if (tdb->file->num_lockrecs && offset >= TDB_HASH_LOCK_START && offset < TDB_HASH_LOCK_START + TDB_HASH_LOCK_RANGE) { return tdb_logerr(tdb, TDB_ERR_LOCK, TDB_LOG_ERROR, "tdb_nest_lock: already have a hash lock?"); } +#endif new_lck = (struct tdb_lock *)realloc( tdb->file->lockrecs,