]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: make sure to revoke all the freeable blocks in ext4_free_blocks
authorDaeho Jeong <daeho.jeong@samsung.com>
Sun, 21 Feb 2016 23:31:41 +0000 (18:31 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 21 Feb 2016 23:31:41 +0000 (18:31 -0500)
commit2666e6ea5a01ab2a928df1201abd5f7cc4b2b316
treeaeeeb84bc86dbf70fc392539c0f955fae2c6a486
parent3a983264929f9603870eda0f9c56cd5072647a75
ext4: make sure to revoke all the freeable blocks in ext4_free_blocks

Now, ext4_free_blocks() doesn't revoke data blocks of per-file data
journalled inode and it can cause file data inconsistency problems.
Even though data blocks of per-file data journalled inode are already
forgotten by jbd2_journal_invalidatepage() in advance of invoking
ext4_free_blocks(), we still need to revoke the data blocks here.
Moreover some of the metadata blocks, which are not found by
sb_find_get_block(), are still needed to be revoked, but this is also
missing here.

Signed-off-by: Daeho Jeong <daeho.jeong@samsung.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
fs/ext4/mballoc.c