Whamcloud - gitweb
LU-13991 ldlm: speedup flock reprocess
authorAndriy Skulysh <c17819@cray.com>
Wed, 19 Feb 2020 20:06:33 +0000 (22:06 +0200)
committerAndreas Dilger <adilger@whamcloud.com>
Fri, 26 Aug 2022 16:50:44 +0000 (16:50 +0000)
We can check for deadlock only for first
conflicting lock, the rest deadlock checks
will be performed after cancelation of
first conflicting lock.

Lustre-change: https://review.whamcloud.com/40048
Lustre-commit: dadec10251090ba88c1b39517943e6603ba6d682

Change-Id: I18359db405ab021a4f32ac833de203254097142d
HPE-bug-id: LUS-8509
Signed-off-by: Andriy Skulysh <c17819@cray.com>
Reviewed-on: https://review.whamcloud.com/48320
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 1941872..aefab40 100644 (file)
@@ -373,13 +373,13 @@ reprocess:
                                continue;
 
                        if (intention != LDLM_PROCESS_ENQUEUE) {
-                               reprocess_failed = 1;
                                if (ldlm_flock_deadlock(req, lock)) {
                                        ldlm_flock_cancel_on_deadlock(
                                                req, grant_work);
                                        RETURN(LDLM_ITER_CONTINUE);
                                }
-                               continue;
+                               reprocess_failed = 1;
+                               break;
                        }
 
                        if (*flags & LDLM_FL_BLOCK_NOWAIT) {