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

Commit 09771430 authored by Shen Feng's avatar Shen Feng Committed by Chris Mason
Browse files

Btrfs: free inode struct when btrfs_new_inode fails



btrfs_new_inode doesn't call iput to free the inode
when it fails.

Signed-off-by: default avatarShen Feng <shen@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent b5555f77
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -3481,9 +3481,11 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,

	if (dir) {
		ret = btrfs_set_inode_index(dir, index);
		if (ret)
		if (ret) {
			iput(inode);
			return ERR_PTR(ret);
		}
	}
	/*
	 * index_cnt is ignored for everything but a dir,
	 * btrfs_get_inode_index_count has an explanation for the magic
@@ -3565,6 +3567,7 @@ fail:
	if (dir)
		BTRFS_I(dir)->index_cnt--;
	btrfs_free_path(path);
	iput(inode);
	return ERR_PTR(ret);
}