summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/lib/tdb/common/tdb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source/lib/tdb/common/tdb.c b/source/lib/tdb/common/tdb.c
index 767452c9b34..c7cec297f6c 100644
--- a/source/lib/tdb/common/tdb.c
+++ b/source/lib/tdb/common/tdb.c
@@ -243,7 +243,7 @@ int tdb_do_delete(struct tdb_context *tdb, tdb_off_t rec_ptr, struct list_struct
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;