jbd2: fix lockdep annotation in add_transaction_credits()
authorJan Kara <jack@suse.cz>
Thu, 22 Sep 2016 15:44:06 +0000 (11:44 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 22 Sep 2016 15:44:06 +0000 (11:44 -0400)
commite03a9976afce6634826d56c33531dd10bb9a9166
tree5cd08ff2ed8a983a96f485680416e840fd095194
parent7c5f6b320b59cb4a674750bbb29a248b5bae7641
jbd2: fix lockdep annotation in add_transaction_credits()

Thomas has reported a lockdep splat hitting in
add_transaction_credits(). The problem is that that function calls
jbd2_might_wait_for_commit() while holding j_state_lock which is wrong
(we do not really wait for transaction commit while holding that lock).

Fix the problem by moving jbd2_might_wait_for_commit() into places where
we are ready to wait for transaction commit and thus j_state_lock is
unlocked.

Cc: stable@vger.kernel.org
Fixes: 1eaa566d368b214d99cbb973647c1b0b8102a9ae
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/jbd2/transaction.c