Re: [PATCH] f2fs: fix the size value in __check_sit_bitmap

From: Chao Yu
Date: Sat Aug 05 2017 - 01:41:36 EST


On 2017/8/4 17:07, Yunlong Song wrote:
> The current size value is not correct and will miss bitmap check.
>
> Signed-off-by: Yunlong Song <yunlong.song@xxxxxxxxxx>

Reviewed-by: Chao Yu <yuchao0@xxxxxxxxxx>

> ---
> fs/f2fs/segment.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index f336f8c..45fb534 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -787,11 +787,14 @@ void __check_sit_bitmap(struct f2fs_sb_info *sbi,
> sentry = get_seg_entry(sbi, segno);
> offset = GET_BLKOFF_FROM_SEG0(sbi, blk);
>
> - size = min((unsigned long)(end - blk), max_blocks);
> + if (end < START_BLOCK(sbi, segno + 1))
> + size = GET_BLKOFF_FROM_SEG0(sbi, end);
> + else
> + size = max_blocks;
> map = (unsigned long *)(sentry->cur_valid_map);
> offset = __find_rev_next_bit(map, size, offset);
> f2fs_bug_on(sbi, offset != size);
> - blk += size;
> + blk = START_BLOCK(sbi, segno + 1);
> }
> #endif
> }
>