Unverified Commit 05883576 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!14563 f2fs: fix to do sanity check on node blkaddr in truncate_node()

parents a38e978d ecd00c92
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -838,6 +838,15 @@ static int truncate_node(struct dnode_of_data *dn)
	if (err)
		return err;

	if (ni.blk_addr != NEW_ADDR &&
		!f2fs_is_valid_blkaddr(sbi, ni.blk_addr, DATA_GENERIC_ENHANCE)) {
		f2fs_err(sbi,
			"nat entry is corrupted, run fsck to fix it, ino:%u, "
			"nid:%u, blkaddr:%u", ni.ino, ni.nid, ni.blk_addr);
		set_sbi_flag(sbi, SBI_NEED_FSCK);
		return -EFSCORRUPTED;
	}

	/* Deallocate node address */
	f2fs_invalidate_blocks(sbi, ni.blk_addr);
	dec_valid_node_count(sbi, dn->inode, dn->nid == dn->inode->i_ino);