aboutsummaryrefslogtreecommitdiff
path: root/net/lapb/lapb_iface.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <[email protected]>2009-04-14 00:10:35 +0200
committerFrederic Weisbecker <[email protected]>2009-09-14 07:18:01 +0200
commita412f9efdd6424bf4bf28c8e8c92060b5e975482 (patch)
treeb290d38a85c4b675af426dbd8593768bc5339fa1 /net/lapb/lapb_iface.c
parent8ebc423238341b52912c7295b045a32477b33f09 (diff)
reiserfs, kill-the-BKL: fix unsafe j_flush_mutex lock
Impact: fix a deadlock The j_flush_mutex is acquired safely in journal.c: if we can't take it, we free the reiserfs per superblock lock and wait a bit. But we have a remaining place in kupdate_transactions() where j_flush_mutex is still acquired traditionnaly. Thus the following scenario (warned by lockdep) can happen: A B mutex_lock(&write_lock) mutex_lock(&write_lock) mutex_lock(&j_flush_mutex) mutex_lock(&j_flush_mutex) //block mutex_unlock(&write_lock) sleep... mutex_lock(&write_lock) //deadlock Fix this by using reiserfs_mutex_lock_safe() in kupdate_transactions(). Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Alessio Igor Bogani <[email protected]> Cc: Jeff Mahoney <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/lapb/lapb_iface.c')
0 files changed, 0 insertions, 0 deletions