diff options
author | Thomas Betker <[email protected]> | 2015-11-10 22:18:15 +0100 |
---|---|---|
committer | David Woodhouse <[email protected]> | 2016-02-25 11:11:25 +0000 |
commit | 157078f64b8a9cd7011b6b900b2f2498df850748 (patch) | |
tree | 7bfe4c748232f41764dcaa80c1810abacd70bef4 /lib/netdev-notifier-error-inject.c | |
parent | 38714fbd299f992080a11b977f609136ec8530c2 (diff) |
Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
This reverts commit 5ffd3412ae55
("jffs2: Fix lock acquisition order bug in jffs2_write_begin").
The commit modified jffs2_write_begin() to remove a deadlock with
jffs2_garbage_collect_live(), but this introduced new deadlocks found
by multiple users. page_lock() actually has to be called before
mutex_lock(&c->alloc_sem) or mutex_lock(&f->sem) because
jffs2_write_end() and jffs2_readpage() are called with the page locked,
and they acquire c->alloc_sem and f->sem, resp.
In other words, the lock order in jffs2_write_begin() was correct, and
it is the jffs2_garbage_collect_live() path that has to be changed.
Revert the commit to get rid of the new deadlocks, and to clear the way
for a better fix of the original deadlock.
Reported-by: Deng Chao <[email protected]>
Reported-by: Ming Liu <[email protected]>
Reported-by: wangzaiwei <[email protected]>
Signed-off-by: Thomas Betker <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
Cc: [email protected]
Diffstat (limited to 'lib/netdev-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions