On 2018/5/8 22:16, Junling Zheng wrote:
> This fixes the block allocation direction from left to right inside
> one segment despite of the direction of segment allocation.

Hmm.. there is no such restriction that we have to keep misc tools' allocation
algorithm line with kernel one, so I suggest that let's just keep original
codes. Jaegeuk, what's your opinion?

Thanks,

> 
> Signed-off-by: Junling Zheng <zhengjunl...@huawei.com>
> ---
>  fsck/mount.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/fsck/mount.c b/fsck/mount.c
> index 1396a2e..38d2aa2 100644
> --- a/fsck/mount.c
> +++ b/fsck/mount.c
> @@ -1921,13 +1921,13 @@ int find_next_free_block(struct f2fs_sb_info *sbi, 
> u64 *to, int left, int type)
>  
>               if (se->valid_blocks == sbi->blocks_per_seg ||
>                               IS_CUR_SEGNO(sbi, segno, type)) {
> -                     *to = left ? START_BLOCK(sbi, segno) - 1:
> +                     *to = left ? START_BLOCK(sbi, segno - 1) :
>                                               START_BLOCK(sbi, segno + 1);
>                       continue;
>               }
>  
>               if (se->valid_blocks == 0 && not_enough) {
> -                     *to = left ? START_BLOCK(sbi, segno) - 1:
> +                     *to = left ? START_BLOCK(sbi, segno - 1) :
>                                               START_BLOCK(sbi, segno + 1);
>                       continue;
>               }
> @@ -1949,7 +1949,10 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 
> *to, int left, int type)
>                       !f2fs_test_bit(offset, (const char *)se->cur_valid_map))
>                       return 0;
>  
> -             *to = left ? *to - 1: *to + 1;
> +             if (!(OFFSET_IN_SEG(sbi, *to + 1)) && left)
> +                     *to = START_BLOCK(sbi, segno - 1);
> +             else
> +                     *to = *to + 1;
>       }
>       return -1;
>  }
> 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to