ext2: code cleanup for ext2_free_blocks()
authorChengguang Xu <cgxu519@zoho.com.cn>
Tue, 23 Jul 2019 11:21:55 +0000 (19:21 +0800)
committerJan Kara <jack@suse.cz>
Wed, 31 Jul 2019 10:04:42 +0000 (12:04 +0200)
Call ext2_data_block_valid() for block range validity.

Signed-off-by: Chengguang Xu <cgxu519@zoho.com.cn>
Link: https://lore.kernel.org/r/20190723112155.20329-2-cgxu519@zoho.com.cn
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext2/balloc.c

index 92e9a74..e0cc551 100644 (file)
@@ -490,9 +490,7 @@ void ext2_free_blocks (struct inode * inode, unsigned long block,
        struct ext2_super_block * es = sbi->s_es;
        unsigned freed = 0, group_freed;
 
-       if (block < le32_to_cpu(es->s_first_data_block) ||
-           block + count < block ||
-           block + count > le32_to_cpu(es->s_blocks_count)) {
+       if (!ext2_data_block_valid(sbi, block, count)) {
                ext2_error (sb, "ext2_free_blocks",
                            "Freeing blocks not in datazone - "
                            "block = %lu, count = %lu", block, count);