summaryrefslogtreecommitdiff
path: root/drivers/md
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2015-11-30 04:20:59 +0300
committerSasha Levin <sasha.levin@oracle.com>2016-02-10 06:56:16 +0300
commitf997a6ac49a7de81cff6c9a44223a7537744a11d (patch)
treed450e080c7c0ab623429797322478cf98496dca5 /drivers/md
parentccccd9832c943d49848d2c492a7659c339865d6b (diff)
downloadlinux-f997a6ac49a7de81cff6c9a44223a7537744a11d.tar.xz
bcache: fix a leak in bch_cached_dev_run()
[ Upstream commit 4d4d8573a8451acc9f01cbea24b7e55f04a252fe ] Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Tested-by: Joshua Schmid <jschmid@suse.com> Tested-by: Eric Wheeler <bcache@linux.ewheeler.net> Cc: Kent Overstreet <kmo@daterainc.com> Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe <axboe@fb.com> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/bcache/super.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index f624ae8be466..9d7b6ee454af 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -880,8 +880,11 @@ void bch_cached_dev_run(struct cached_dev *dc)
buf[SB_LABEL_SIZE] = '\0';
env[2] = kasprintf(GFP_KERNEL, "CACHED_LABEL=%s", buf);
- if (atomic_xchg(&dc->running, 1))
+ if (atomic_xchg(&dc->running, 1)) {
+ kfree(env[1]);
+ kfree(env[2]);
return;
+ }
if (!d->c &&
BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) {