Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3153495d authored by Miao Xie's avatar Miao Xie Committed by Li Zefan
Browse files

Btrfs: Fix incorrect inode nlink in btrfs_link()



Link count of the inode is not decreased if btrfs_set_inode_index()
fails.

Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
Singed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
parent b9e03af0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -4846,9 +4846,6 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
	if (inode->i_nlink == ~0U)
		return -EMLINK;

	btrfs_inc_nlink(inode);
	inode->i_ctime = CURRENT_TIME;

	err = btrfs_set_inode_index(dir, &index);
	if (err)
		goto fail;
@@ -4864,6 +4861,9 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
		goto fail;
	}

	btrfs_inc_nlink(inode);
	inode->i_ctime = CURRENT_TIME;

	btrfs_set_trans_block_group(trans, dir);
	ihold(inode);