]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/ext4/mballoc.c
ext4: Add block validity check when truncating indirect block mapped inodes
[net-next-2.6.git] / fs / ext4 / mballoc.c
index d34afad3e1371b89c3bfb600c51d55e714f00419..d129c1039f1d06cb5b39786da20aa55eadc428be 100644 (file)
@@ -4476,10 +4476,11 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,
 
        sbi = EXT4_SB(sb);
        es = EXT4_SB(sb)->s_es;
-       if (!ext4_data_block_valid(sbi, block, count)) {
+       if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
+           !ext4_data_block_valid(sbi, block, count)) {
                ext4_error(sb, __func__,
-                           "Freeing blocks not in datazone - "
-                           "block = %llu, count = %lu", block, count);
+                          "Freeing blocks not in datazone - "
+                          "block = %llu, count = %lu", block, count);
                goto error_return;
        }