diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/inode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index cc6022842e0c..2d1208f964eb 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -4526,14 +4526,17 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, | |||
4526 | BUG_ON(!path); | 4526 | BUG_ON(!path); |
4527 | 4527 | ||
4528 | inode = new_inode(root->fs_info->sb); | 4528 | inode = new_inode(root->fs_info->sb); |
4529 | if (!inode) | 4529 | if (!inode) { |
4530 | btrfs_free_path(path); | ||
4530 | return ERR_PTR(-ENOMEM); | 4531 | return ERR_PTR(-ENOMEM); |
4532 | } | ||
4531 | 4533 | ||
4532 | if (dir) { | 4534 | if (dir) { |
4533 | trace_btrfs_inode_request(dir); | 4535 | trace_btrfs_inode_request(dir); |
4534 | 4536 | ||
4535 | ret = btrfs_set_inode_index(dir, index); | 4537 | ret = btrfs_set_inode_index(dir, index); |
4536 | if (ret) { | 4538 | if (ret) { |
4539 | btrfs_free_path(path); | ||
4537 | iput(inode); | 4540 | iput(inode); |
4538 | return ERR_PTR(ret); | 4541 | return ERR_PTR(ret); |
4539 | } | 4542 | } |