Thread (2 messages) 2 messages, 2 authors, 2011-10-21

Re: [PATCH] ext4: fix the deadlock in mpage_da_map_and_submit()

From: Ted Ts'o <tytso@mit.edu>
Date: 2011-10-21 01:12:45

On Thu, Oct 13, 2011 at 04:13:18PM +0900, Kazuya Mio wrote:
If ext4_jbd2_file_inode() in mpage_da_map_and_submit() fails due to journal
abort, this function returns to caller without unlocking the page.
It leads to the deadlock, and the patch fixes this issue by calling
mpage_da_submit_io().

Signed-off-by: Kazuya Mio <redacted>
Applied, thanks.

This is an area where we should really clean things up next merge
window, though.  I'm a little uneasy that we will potentially write
back some blocks even though the journal has been aborted (we do this
in other error paths, so this isn't a criticism of this patch, just of
the current state of affairs).

The problem mpage_da_submit_io() is the only way we have to unlock the
pages.  In the future we should probably have a separate path to
unlock the pages in case of an error.  We might also want to merge
mpage_da_submit_io() and mpage_da_map_and_submit(), and to also clean
up a number of comments which are out of date.  (For example,
mpage_da_submit_io() no longer uses ext4_writepage().)

						- Ted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help