summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2010-12-20 17:25:35 +0100
committerMichael Adam <obnox@samba.org>2011-03-14 13:35:47 +0100
commit8395fcc0793b49b6910f640d6ac67e376bf08fd7 (patch)
tree3844c83d9f332c763a3623531ad7e5367c0c280e
parentbb22135f28882984a4ef9cf85c34cb0c15e42216 (diff)
downloadsamba-8395fcc0793b49b6910f640d6ac67e376bf08fd7.tar.gz
samba-8395fcc0793b49b6910f640d6ac67e376bf08fd7.tar.xz
samba-8395fcc0793b49b6910f640d6ac67e376bf08fd7.zip
vacuum: traverse the delete_queue befor traversing the database.
(This used to be ctdb commit 04c335f9195a5fd83c91a57d06b1e4eaa511844e)
-rw-r--r--ctdb/server/ctdb_vacuum.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c
index 01887bda8a..c44c33badb 100644
--- a/ctdb/server/ctdb_vacuum.c
+++ b/ctdb/server/ctdb_vacuum.c
@@ -410,6 +410,12 @@ static int ctdb_vacuum_db(struct ctdb_db_context *ctdb_db, struct vacuum_data *v
vdata->list[i]->db_id = ctdb_db->db_id;
}
+ /*
+ * Traverse the delete_queue.
+ * This builds the same lists as the db traverse.
+ */
+ trbt_traversearray32(ctdb_db->delete_queue, 1, delete_queue_traverse, vdata);
+
/* read-only traverse, looking for records that might be able to be vacuumed */
if (tdb_traverse_read(ctdb_db->ltdb->tdb, vacuum_traverse, vdata) == -1 ||
vdata->traverse_error) {