diff options
author | Yoshinori Sano <yoshinori.sano@gmail.com> | 2011-04-03 08:31:28 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2011-04-05 01:19:43 -0400 |
commit | 6e8df2ae89ab37730c0062782f844c66ecfc97a7 (patch) | |
tree | 4172619b01d817440d43807da8baec77a14d39d2 /fs | |
parent | 8b2b2d3cbefb605501342adaf64d601b545ed154 (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.c | 1 |
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); |