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
..
2012-10-09 23:33:38 -04:00
2012-10-09 16:22:17 +09:00
2012-10-09 23:33:38 -04:00
2012-10-09 15:04:25 +01:00
2012-10-17 09:18:38 -05:00
2012-10-09 18:35:22 -04:00
2012-10-09 16:22:17 +09:00
2012-10-09 16:22:17 +09:00
2012-10-06 03:05:31 +09:00
2012-10-09 23:33:39 -04:00
2012-10-09 16:22:17 +09:00
2012-10-09 23:33:39 -04:00
2012-09-07 14:57:46 -04:00
2012-10-22 08:50:37 +03:00
2012-10-16 13:36:50 -04:00
2012-10-09 15:52:31 +09:00
2012-12-10 16:30:43 -05:00
2012-10-09 18:35:22 -04:00
2012-09-26 21:08:52 -04:00
2012-10-09 23:33:39 -04:00