Whamcloud - gitweb
LU-15402 ldlm: speedup RD flock enqueue
authorAndriy Skulysh <c17819@cray.com>
Wed, 24 Nov 2021 11:33:47 +0000 (13:33 +0200)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 26 Aug 2022 16:50:32 +0000 (16:50 +0000)
Scanning of lr_granted can be done until
covering granted RD lock is reached.

Lustre-change: https://review.whamcloud.com/45957
Lustre-commit: b07a57027ee5cc1afa82cc4c82be73a2c4894502

Change-Id: I907cff002d9765c5f8496d377eddd5e62795d89c
HPE-bug-id: LUS-10623
Signed-off-by: Andriy Skulysh <c17819@cray.com>
Reviewed-on: https://review.whamcloud.com/48323
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/ldlm/ldlm_flock.c

index d5f740f..1941872 100644 (file)
@@ -356,6 +356,15 @@ reprocess:
                                continue;
                        }
 
+                       if (req->l_req_mode == LCK_PR &&
+                           lock->l_granted_mode == LCK_PR &&
+                           lock->l_policy_data.l_flock.start <=
+                               req->l_policy_data.l_flock.start &&
+                           lock->l_policy_data.l_flock.end >=
+                               req->l_policy_data.l_flock.end) {
+                               /* there can't be granted WR lock */
+                               break;
+                       }
                        /* locks are compatible, overlap doesn't matter */
                        if (lockmode_compat(lock->l_granted_mode, mode))
                                continue;