diff mbox series

[2/4] ext4: do not trim the group with corrupted block bitmap

Message ID 20231218141814.1477338-3-libaokun1@huawei.com
State Not Applicable
Headers show
Series ext4: fix divide error in mb_update_avg_fragment_size() | expand

Commit Message

Baokun Li Dec. 18, 2023, 2:18 p.m. UTC
Otherwise operating on an incorrupted block bitmap can lead to all sorts
of unknown problems.

Signed-off-by: Baokun Li <libaokun1@huawei.com>
---
 fs/ext4/mballoc.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jan Kara Dec. 18, 2023, 3:02 p.m. UTC | #1
On Mon 18-12-23 22:18:12, Baokun Li wrote:
> Otherwise operating on an incorrupted block bitmap can lead to all sorts
> of unknown problems.
> 
> Signed-off-by: Baokun Li <libaokun1@huawei.com>

I agree this is a safer option. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/ext4/mballoc.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> index d72b5e3c92ec..a95fa6e2b0f9 100644
> --- a/fs/ext4/mballoc.c
> +++ b/fs/ext4/mballoc.c
> @@ -6757,6 +6757,9 @@ __releases(ext4_group_lock_ptr(sb, e4b->bd_group))
>  	bool set_trimmed = false;
>  	void *bitmap;
>  
> +	if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info)))
> +		return 0;
> +
>  	bitmap = e4b->bd_bitmap;
>  	if (start == 0 && max >= ext4_last_grp_cluster(sb, e4b->bd_group))
>  		set_trimmed = true;
> -- 
> 2.31.1
>
diff mbox series

Patch

diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index d72b5e3c92ec..a95fa6e2b0f9 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -6757,6 +6757,9 @@  __releases(ext4_group_lock_ptr(sb, e4b->bd_group))
 	bool set_trimmed = false;
 	void *bitmap;
 
+	if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(e4b->bd_info)))
+		return 0;
+
 	bitmap = e4b->bd_bitmap;
 	if (start == 0 && max >= ext4_last_grp_cluster(sb, e4b->bd_group))
 		set_trimmed = true;