diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-13 23:00:49 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-13 23:00:49 (GMT) |
commit | 0e5b88cd9975dca6c191cc9bd11f233fac4ca882 (patch) | |
tree | 6302317acfb24d6b5ad7924aceaa0dd1c4a7a371 /fs/btrfs/inode.c | |
parent | eebea5d13d391981061d6ef069a841002eba4a7a (diff) | |
parent | 36e39c40b3facc9b489a13f1d301fc53ff6960a3 (diff) | |
download | linux-0e5b88cd9975dca6c191cc9bd11f233fac4ca882.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
Btrfs: break out of shrink_delalloc earlier
btrfs: fix not enough reserved space
btrfs: fix dip leak
Btrfs: make sure not to return overlapping extents to fiemap
Btrfs: deal with short returns from copy_from_user
Btrfs: fix regressions in copy_from_user handling
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 0efdb65..9007bbd 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, goto fail; /* - * 1 item for inode ref + * 2 items for inode and inode ref * 2 items for dir items + * 1 item for parent inode */ - trans = btrfs_start_transaction(root, 3); + trans = btrfs_start_transaction(root, 5); if (IS_ERR(trans)) { err = PTR_ERR(trans); goto fail; @@ -6056,6 +6057,7 @@ static void btrfs_submit_direct(int rw, struct bio *bio, struct inode *inode, if (!skip_sum) { dip->csums = kmalloc(sizeof(u32) * bio->bi_vcnt, GFP_NOFS); if (!dip->csums) { + kfree(dip); ret = -ENOMEM; goto free_ordered; } |