Whamcloud - gitweb
LU-2177 ldlm: flock completion fixes.
[fs/lustre-release.git] / lustre / ldlm / ldlm_resource.c
index 00f083a..11937d2 100644 (file)
@@ -725,8 +725,15 @@ static void cleanup_resource(struct ldlm_resource *res, cfs_list_t *q,
                          * will go away ... */
                         unlock_res(res);
                         LDLM_DEBUG(lock, "setting FL_LOCAL_ONLY");
+                       if (lock->l_flags & LDLM_FL_FAIL_LOC) {
+                               schedule_timeout_and_set_state(
+                                       TASK_UNINTERRUPTIBLE,
+                                       cfs_time_seconds(4));
+                               set_current_state(TASK_RUNNING);
+                       }
                         if (lock->l_completion_ast)
-                                lock->l_completion_ast(lock, 0, NULL);
+                               lock->l_completion_ast(lock,
+                                                      LDLM_FL_FAILED, NULL);
                         LDLM_LOCK_RELEASE(lock);
                         continue;
                 }