diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 0efdb65953c5..9007bbd01dbf 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -4821,10 +4821,11 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir, | |||
4821 | goto fail; | 4821 | goto fail; |
4822 | 4822 | ||
4823 | /* | 4823 | /* |
4824 | * 1 item for inode ref | 4824 | * 2 items for inode and inode ref |
4825 | * 2 items for dir items | 4825 | * 2 items for dir items |
4826 | * 1 item for parent inode | ||
4826 | */ | 4827 | */ |
4827 | trans = btrfs_start_transaction(root, 3); | 4828 | trans = btrfs_start_transaction(root, 5); |
4828 | if (IS_ERR(trans)) { | 4829 | if (IS_ERR(trans)) { |
4829 | err = PTR_ERR(trans); | 4830 | err = PTR_ERR(trans); |
4830 | goto fail; | 4831 | goto fail; |
@@ -6056,6 +6057,7 @@ static void btrfs_submit_direct(int rw, struct bio *bio, struct inode *inode, | |||
6056 | if (!skip_sum) { | 6057 | if (!skip_sum) { |
6057 | dip->csums = kmalloc(sizeof(u32) * bio->bi_vcnt, GFP_NOFS); | 6058 | dip->csums = kmalloc(sizeof(u32) * bio->bi_vcnt, GFP_NOFS); |
6058 | if (!dip->csums) { | 6059 | if (!dip->csums) { |
6060 | kfree(dip); | ||
6059 | ret = -ENOMEM; | 6061 | ret = -ENOMEM; |
6060 | goto free_ordered; | 6062 | goto free_ordered; |
6061 | } | 6063 | } |