summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2014-11-06 09:33:50 +1100
committerAmitay Isaacs <amitay@samba.org>2014-12-05 14:43:07 +0100
commitdbb1958284657f26a868705e5f9612bc377fd5e0 (patch)
tree0d6a294f18c78be3c91aed190e321c8afdf9f761
parentd35f512cd972ac1f732fe998b2179242d042082d (diff)
downloadsamba-dbb1958284657f26a868705e5f9612bc377fd5e0.tar.gz
samba-dbb1958284657f26a868705e5f9612bc377fd5e0.tar.xz
samba-dbb1958284657f26a868705e5f9612bc377fd5e0.zip
ctdb-vacuum: Use non-blocking lock when traversing delete tree
This avoids vacuuming getting in the way of ctdb daemon to process record requests. Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Martin Schwenke <martin@meltin.net>
-rw-r--r--ctdb/server/ctdb_vacuum.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c
index 892dc07d15..d678ff98ab 100644
--- a/ctdb/server/ctdb_vacuum.c
+++ b/ctdb/server/ctdb_vacuum.c
@@ -317,12 +317,8 @@ static int delete_marshall_traverse_first(void *param, void *data)
uint32_t hash = ctdb_hash(&(dd->key));
int res;
- res = tdb_chainlock(ctdb_db->ltdb->tdb, dd->key);
+ res = tdb_chainlock_nonblock(ctdb_db->ltdb->tdb, dd->key);
if (res != 0) {
- DEBUG(DEBUG_ERR,
- (__location__ " Error getting chainlock on record with "
- "key hash [0x%08x] on database db[%s].\n",
- hash, ctdb_db->db_name));
recs->vdata->count.delete_list.skipped++;
recs->vdata->count.delete_list.left--;
talloc_free(dd);