Whamcloud - gitweb
LU-11719 ldlm: Adjust search_* functions
[fs/lustre-release.git] / lustre / ldlm / ldlm_lock.c
index 5e7afe6..f83971c 100644 (file)
@@ -1262,6 +1262,8 @@ static struct ldlm_lock *search_itree(struct ldlm_resource *res,
        };
        int idx;
 
+       data->lmd_lock = NULL;
+
        for (idx = 0; idx < LCK_MODE_NUM; idx++) {
                struct ldlm_interval_tree *tree = &res->lr_itree[idx];
 
@@ -1273,8 +1275,11 @@ static struct ldlm_lock *search_itree(struct ldlm_resource *res,
 
                interval_search(tree->lit_root, &ext,
                                itree_overlap_cb, data);
+               if (data->lmd_lock)
+                       return data->lmd_lock;
        }
-       return data->lmd_lock;
+
+       return NULL;
 }
 
 
@@ -1292,11 +1297,14 @@ static struct ldlm_lock *search_queue(struct list_head *queue,
        struct ldlm_lock *lock;
        int rc;
 
+       data->lmd_lock = NULL;
+
        list_for_each_entry(lock, queue, l_res_link) {
                rc = lock_matches(lock, data);
                if (rc == INTERVAL_ITER_STOP)
                        return data->lmd_lock;
        }
+
        return NULL;
 }