f2fs: Don't overwrite all types of node to keep node chain

Currently, we enable node SSR by default, and mixed
different types of node segment to do SSR more intensively.
Although reuse warm node is not allowed, warm node chain
will be destroyed by errors introduced by other types
node chain. So we'd better forbid reusing all types
of node to keep warm node chain.

Signed-off-by: Yunlei He <heyunlei@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
tirimbino
Yunlei He 7 years ago committed by Jaegeuk Kim
parent c6a9e6a41f
commit 7f270a67a1
  1. 2
      fs/f2fs/segment.c

@ -1862,7 +1862,7 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
sbi->discard_blks--; sbi->discard_blks--;
/* don't overwrite by SSR to keep node chain */ /* don't overwrite by SSR to keep node chain */
if (se->type == CURSEG_WARM_NODE) { if (IS_NODESEG(se->type)) {
if (!f2fs_test_and_set_bit(offset, se->ckpt_valid_map)) if (!f2fs_test_and_set_bit(offset, se->ckpt_valid_map))
se->ckpt_valid_blocks++; se->ckpt_valid_blocks++;
} }

Loading…
Cancel
Save