Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "jffs2: Fix lock acquisition order bug in jffs2_write_begin"
This reverts commit 5ffd341 ("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]
- Loading branch information