locks: Add lockdep assertion for blocked_lock_lock
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Fri, 3 Apr 2015 13:04:03 +0000 (09:04 -0400)
committerJeff Layton <jeff.layton@primarydata.com>
Fri, 3 Apr 2015 13:04:03 +0000 (09:04 -0400)
Annonate insert, remove and iterate function that we need
blocked_lock_lock held.

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
fs/locks.c

index f88ed45066648a5e5aa965bd562bd3434849ea7c..36cf93f165a899e0ad28082760c1e4123863fdd7 100644 (file)
@@ -592,11 +592,15 @@ posix_owner_key(struct file_lock *fl)
 
 static void locks_insert_global_blocked(struct file_lock *waiter)
 {
+       lockdep_assert_held(&blocked_lock_lock);
+
        hash_add(blocked_hash, &waiter->fl_link, posix_owner_key(waiter));
 }
 
 static void locks_delete_global_blocked(struct file_lock *waiter)
 {
+       lockdep_assert_held(&blocked_lock_lock);
+
        hash_del(&waiter->fl_link);
 }
 
@@ -838,6 +842,8 @@ static int posix_locks_deadlock(struct file_lock *caller_fl,
 {
        int i = 0;
 
+       lockdep_assert_held(&blocked_lock_lock);
+
        /*
         * This deadlock detector can't reasonably detect deadlocks with
         * FL_OFDLCK locks, since they aren't owned by a process, per-se.