Commit 2b99e410 authored by Cheng Lin's avatar Cheng Lin Committed by Chandan Babu R
Browse files

xfs: introduce protection for drop nlink



When abnormal drop_nlink are detected on the inode,
return error, to avoid corruption propagation.

Signed-off-by: default avatarCheng Lin <cheng.lin130@zte.com.cn>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent 9fa8753a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -918,6 +918,13 @@ xfs_droplink(
	xfs_trans_t *tp,
	xfs_inode_t *ip)
{
	if (VFS_I(ip)->i_nlink == 0) {
		xfs_alert(ip->i_mount,
			  "%s: Attempt to drop inode (%llu) with nlink zero.",
			  __func__, ip->i_ino);
		return -EFSCORRUPTED;
	}

	xfs_trans_ichgtime(tp, ip, XFS_ICHGTIME_CHG);

	drop_nlink(VFS_I(ip));