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