Author: Volker Lendecke <vl@samba.org>
Date: Tue Aug 12 22:31:52 2008 +0200
Attempt to fix bug 5684
With the ctdb checkin
dde9f3f006 tdb optimized out write lock checks for
write-enabled transaction. Sadly, this also removed the possibility to ever
remove dead records left over from tdb_delete calls within a transaction.
Tridge, please check this! Did
dde9f3f006 have any reason beyond performance
optimizations?
Thanks,
Volker
(This used to be commit
3f884c4ae36f3260e63626bdd4989d9258ae6497)
if (tdb->read_only || tdb->traverse_read) return -1;
- if (tdb->traverse_write != 0 ||
+ if (((tdb->traverse_write != 0) && (!TDB_DEAD(rec))) ||
tdb_write_lock_record(tdb, rec_ptr) == -1) {
/* Someone traversing here: mark it as dead */
rec->magic = TDB_DEAD_MAGIC;