All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment
@ 2018-05-08 14:16 Junling Zheng
  2018-05-14  8:09 ` Chao Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Junling Zheng @ 2018-05-08 14:16 UTC (permalink / raw)
  To: jaegeuk, yuchao0; +Cc: miaoxie, linux-f2fs-devel

This fixes the block allocation direction from left to right inside
one segment despite of the direction of segment allocation.

Signed-off-by: Junling Zheng <zhengjunling@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;
 }
-- 
2.16.2


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-18  0:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-08 14:16 [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment Junling Zheng
2018-05-14  8:09 ` Chao Yu
2018-05-18  0:58   ` Jaegeuk Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.