1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-11 16:58:40 +03:00

ctdb-locking: Add DB lock requests to head of the pending queue

This allows to schedule DB locks quickly without having to scan through
the pending lock requests.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
Amitay Isaacs 2014-07-15 14:13:25 +10:00 committed by Volker Lendecke
parent 3aa96c3a3e
commit 7189437be4

View File

@ -858,7 +858,14 @@ static struct lock_request *ctdb_lock_internal(struct ctdb_context *ctdb,
lock_ctx->request = request;
lock_ctx->child = -1;
DLIST_ADD_END(ctdb->lock_pending, lock_ctx, NULL);
/* Non-record locks are required by recovery and should be scheduled
* immediately, so keep them at the head of the pending queue.
*/
if (lock_ctx->type == LOCK_RECORD) {
DLIST_ADD_END(ctdb->lock_pending, lock_ctx, NULL);
} else {
DLIST_ADD(ctdb->lock_pending, lock_ctx);
}
CTDB_INCREMENT_STAT(ctdb, locks.num_pending);
if (ctdb_db) {
CTDB_INCREMENT_DB_STAT(ctdb_db, locks.num_pending);