From 2abce6c53abc7ac6e31b813e0664cec9edfb9274 Mon Sep 17 00:00:00 2001 From: Tsutomu Itoh Date: Thu, 21 Mar 2013 04:32:32 +0000 Subject: [PATCH] --- yaml --- r: 361951 b: refs/heads/master c: 1dd05682b3ef6e70409e130bfd83e91770801589 h: refs/heads/master i: 361949: 92fb285ed62dd257513d688654d59e6fdd330ee7 361947: f1ee2477132f119ab8ecff24373367383140869f 361943: ec0037623af7f353ed042ae8b81a1758819ef4f6 361935: e35bda523d6d782b6138ae5c7e714f659c8ad87d 361919: f62b9ec2f51d4ec5b137c28c20b09f3bd34c2f0f v: v3 --- [refs] | 2 +- trunk/fs/btrfs/disk-io.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c031e1726693..36908b0a112e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d9abbf1c3131b679379762700201ae69367f3f62 +refs/heads/master: 1dd05682b3ef6e70409e130bfd83e91770801589 diff --git a/trunk/fs/btrfs/disk-io.c b/trunk/fs/btrfs/disk-io.c index 127b23e8323b..6d19a0a554aa 100644 --- a/trunk/fs/btrfs/disk-io.c +++ b/trunk/fs/btrfs/disk-io.c @@ -1291,6 +1291,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans, 0, objectid, NULL, 0, 0, 0); if (IS_ERR(leaf)) { ret = PTR_ERR(leaf); + leaf = NULL; goto fail; } @@ -1334,11 +1335,16 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans, btrfs_tree_unlock(leaf); + return root; + fail: - if (ret) - return ERR_PTR(ret); + if (leaf) { + btrfs_tree_unlock(leaf); + free_extent_buffer(leaf); + } + kfree(root); - return root; + return ERR_PTR(ret); } static struct btrfs_root *alloc_log_tree(struct btrfs_trans_handle *trans,