summaryrefslogtreecommitdiff
path: root/fs/locks.c
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2015-04-03 16:04:03 +0300
committerJeff Layton <jeff.layton@primarydata.com>2015-04-03 16:04:03 +0300
commit663d5af750b8c025d0dfea2cf2a4b4a78cafa3a7 (patch)
treef8977690a5a9029b136758a2aac4058168af4784 /fs/locks.c
parent9b8c86956dea44276e2b2bb368f1f34895f4c5ea (diff)
downloadlinux-663d5af750b8c025d0dfea2cf2a4b4a78cafa3a7.tar.xz
locks: Add lockdep assertion for blocked_lock_lock
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>
Diffstat (limited to 'fs/locks.c')
-rw-r--r--fs/locks.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/locks.c b/fs/locks.c
index f88ed4506664..36cf93f165a8 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -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.