aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2015-11-29 20:20:59 -0500
committerJens Axboe <axboe@fb.com>2015-12-30 22:23:10 -0500
commit4d4d8573a8451acc9f01cbea24b7e55f04a252fe (patch)
treec1d708fe2ec8d3b7b2cf9c9beb2df46490aaa79c
parentfecaee6f20ee122ad75402c53d8278f9bb142ddc (diff)
bcache: fix a leak in bch_cached_dev_run()
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>
-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 383f06028a0a..43e911e4e8d0 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -849,8 +849,11 @@ void bch_cached_dev_run(struct cached_dev *dc)
849 buf[SB_LABEL_SIZE] = '\0'; 849 buf[SB_LABEL_SIZE] = '\0';
850 env[2] = kasprintf(GFP_KERNEL, "CACHED_LABEL=%s", buf); 850 env[2] = kasprintf(GFP_KERNEL, "CACHED_LABEL=%s", buf);
851 851
852 if (atomic_xchg(&dc->running, 1)) 852 if (atomic_xchg(&dc->running, 1)) {
853 kfree(env[1]);
854 kfree(env[2]);
853 return; 855 return;
856 }
854 857
855 if (!d->c && 858 if (!d->c &&
856 BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) { 859 BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) {