Jan Kara 53e872681f ext4: fix deadlock in journal_unmap_buffer()
We cannot wait for transaction commit in journal_unmap_buffer()
because we hold page lock which ranks below transaction start.  We
solve the issue by bailing out of journal_unmap_buffer() and
jbd2_journal_invalidatepage() with -EBUSY.  Caller is then responsible
for waiting for transaction commit to finish and try invalidation
again. Since the issue can happen only for page stradding i_size, it
is simple enough to manually call jbd2_journal_invalidatepage() for
such page from ext4_setattr(), check the return value and wait if
necessary.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2012-12-25 13:29:52 -05:00
..
2011-07-25 14:30:23 -04:00
2012-12-10 16:30:43 -05:00
2012-12-10 14:06:03 -05:00
2012-12-10 16:30:43 -05:00
2012-12-10 16:30:43 -05:00
2012-07-31 09:45:48 +04:00
2012-12-10 16:30:43 -05:00
2012-12-20 00:07:18 -05:00
2012-12-10 16:30:43 -05:00