Whamcloud - gitweb
LU-14397 ptlrpc: idle import vs lock enqueue race
[fs/lustre-release.git] / lustre / osc / osc_lock.c
index 6485eea..3d0cf0f 100644 (file)
@@ -1043,6 +1043,11 @@ enqueue_base:
                if (osc_lock_is_lockless(oscl)) {
                        oio->oi_lockless = 1;
                } else if (!async) {
+                       if (OBD_FAIL_PRECHECK(OBD_FAIL_PTLRPC_IDLE_RACE)) {
+                               OBD_RACE(OBD_FAIL_PTLRPC_IDLE_RACE);
+                               set_current_state(TASK_UNINTERRUPTIBLE);
+                               schedule_timeout(cfs_time_seconds(1) / 2);
+                       }
                        LASSERT(oscl->ols_state == OLS_GRANTED);
                        LASSERT(oscl->ols_hold);
                        LASSERT(oscl->ols_dlmlock != NULL);