This patch fixes allocating wrong segment which has zero data but is registered
as a current segment.

Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
---
 fsck/mount.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fsck/mount.c b/fsck/mount.c
index d34c704..8418dcc 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1383,11 +1383,11 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 
*to, int left, int type)
 
                se = get_seg_entry(sbi, segno);
 
-               if (se->valid_blocks == sbi->blocks_per_seg)
+               if (se->valid_blocks == sbi->blocks_per_seg ||
+                               IS_CUR_SEGNO(sbi, segno, type))
                        goto next;
 
-               if (se->valid_blocks == 0 && !(segno % sbi->segs_per_sec) &&
-                                       !IS_CUR_SEGNO(sbi, segno, type)) {
+               if (se->valid_blocks == 0 && !(segno % sbi->segs_per_sec)) {
                        struct seg_entry *se2;
                        int i;
 
-- 
2.5.4 (Apple Git-61)


------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to