Whamcloud - gitweb
LU-1188 clio: acquire lockdep for cl_lock_peek()
[fs/lustre-release.git] / lustre / obdclass / cl_lock.c
index 2646e4c..d3a0bbd 100644 (file)
@@ -592,7 +592,6 @@ struct cl_lock *cl_lock_peek(const struct lu_env *env, const struct cl_io *io,
         struct cl_object_header *head;
         struct cl_object        *obj;
         struct cl_lock          *lock;
-        int ok;
 
         obj  = need->cld_obj;
         head = cl_object_header(obj);
@@ -613,14 +612,14 @@ struct cl_lock *cl_lock_peek(const struct lu_env *env, const struct cl_io *io,
                 if (result < 0)
                         cl_lock_error(env, lock, result);
         }
-        ok = lock->cll_state == CLS_HELD;
-        if (ok) {
+        if (lock->cll_state == CLS_HELD) {
                 cl_lock_hold_add(env, lock, scope, source);
                 cl_lock_user_add(env, lock);
+                cl_lock_mutex_put(env, lock);
+                cl_lock_lockdep_acquire(env, lock, 0);
                 cl_lock_put(env, lock);
-        }
-        cl_lock_mutex_put(env, lock);
-        if (!ok) {
+        } else {
+                cl_lock_mutex_put(env, lock);
                 cl_lock_put(env, lock);
                 lock = NULL;
         }