aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorYoshinori Sano <yoshinori.sano@gmail.com>2011-04-03 08:31:28 -0400
committerChris Mason <chris.mason@oracle.com>2011-04-05 01:19:43 -0400
commit6e8df2ae89ab37730c0062782f844c66ecfc97a7 (patch)
tree4172619b01d817440d43807da8baec77a14d39d2 /fs
parent8b2b2d3cbefb605501342adaf64d601b545ed154 (diff)
Btrfs: fix memory leak in start_transaction()
Free btrfs_trans_handle when join_transaction() fails in start_transaction() Signed-off-by: Yoshinori Sano <yoshinori.sano@gmail.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/transaction.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index ce48eb59d615..d01cc249a8d3 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -197,6 +197,7 @@ again:
197 197
198 ret = join_transaction(root); 198 ret = join_transaction(root);
199 if (ret < 0) { 199 if (ret < 0) {
200 kmem_cache_free(btrfs_trans_handle_cachep, h);
200 if (type != TRANS_JOIN_NOLOCK) 201 if (type != TRANS_JOIN_NOLOCK)
201 mutex_unlock(&root->fs_info->trans_mutex); 202 mutex_unlock(&root->fs_info->trans_mutex);
202 return ERR_PTR(ret); 203 return ERR_PTR(ret);