diff options
author | Tsutomu Itoh <t-itoh@jp.fujitsu.com> | 2012-12-17 06:38:51 +0000 |
---|---|---|
committer | Josef Bacik <josef@toxicpanda.com> | 2013-01-14 13:52:30 -0500 |
commit | cfa7a9ccda711ac6ab8f0d17c3a9b540092d305a (patch) | |
tree | 639a5436c4efe846035864a92832f67f520debe3 | |
parent | 57ba86c00f9573b63b8c06810d4f6915efed2442 (diff) | |
download | linux-cfa7a9ccda711ac6ab8f0d17c3a9b540092d305a.tar.gz linux-cfa7a9ccda711ac6ab8f0d17c3a9b540092d305a.tar.bz2 linux-cfa7a9ccda711ac6ab8f0d17c3a9b540092d305a.zip |
Btrfs: fix memory leak in name_cache_insert()
We should free name_cache_entry before returning from the
error handling code.
Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
-rw-r--r-- | fs/btrfs/send.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c index 54454542ad40..321b7fb4e441 100644 --- a/fs/btrfs/send.c +++ b/fs/btrfs/send.c @@ -1814,8 +1814,10 @@ static int name_cache_insert(struct send_ctx *sctx, (unsigned long)nce->ino); if (!nce_head) { nce_head = kmalloc(sizeof(*nce_head), GFP_NOFS); - if (!nce_head) + if (!nce_head) { + kfree(nce); return -ENOMEM; + } INIT_LIST_HEAD(nce_head); ret = radix_tree_insert(&sctx->name_cache, nce->ino, nce_head); |