• Yunlong Song's avatar
    f2fs: check segment type in __f2fs_replace_block · 2c190504
    Yunlong Song authored
    In some case, the node blocks has wrong blkaddr whose segment type is
    NODE, e.g., recover inode has missing xattr flag and the blkaddr is in
    the xattr range. Since fsck.f2fs does not check the recovery nodes, this
    will cause __f2fs_replace_block change the curseg of node and do the
    update_sit_entry(sbi, new_blkaddr, 1) with no next_blkoff refresh, as a
    result, when recovery process write checkpoint and sync nodes, the
    next_blkoff of curseg is used in the segment bit map, then it will
    cause f2fs_bug_on. So let's check segment type in __f2fs_replace_block.
    Signed-off-by: default avatarYunlong Song <yunlong.song@huawei.com>
    Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    2c190504
segment.c 97.2 KB