OSDN Git Service

f2fs: do not change the valid_block value if cur_valid_map was wrongly set or cleared
authorYunlong Song <yunlong.song@huawei.com>
Wed, 2 Aug 2017 14:16:54 +0000 (22:16 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 21 Sep 2017 21:11:47 +0000 (14:11 -0700)
Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index 1a9737f..09df864 100644 (file)
@@ -1618,6 +1618,8 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
                        f2fs_msg(sbi->sb, KERN_ERR,
                                "Bitmap was wrongly set, blk:%u", blkaddr);
                        f2fs_bug_on(sbi, 1);
+                       se->valid_blocks--;
+                       del = 0;
                }
 
                if (f2fs_discard_en(sbi) &&
@@ -1645,6 +1647,8 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
                        f2fs_msg(sbi->sb, KERN_ERR,
                                "Bitmap was wrongly cleared, blk:%u", blkaddr);
                        f2fs_bug_on(sbi, 1);
+                       se->valid_blocks++;
+                       del = 0;
                }
 
                if (f2fs_discard_en(sbi) &&