From: Al Viro Date: Mon, 30 Nov 2015 01:20:59 +0000 (-0800) Subject: bcache: fix a leak in bch_cached_dev_run() X-Git-Tag: v4.1.12-92~150^2~317 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=cd3285bd9addadad340ac0689e128b1a17449844;p=users%2Fjedix%2Flinux-maple.git bcache: fix a leak in bch_cached_dev_run() Orabug: 23330610 [ Upstream commit 4d4d8573a8451acc9f01cbea24b7e55f04a252fe ] Signed-off-by: Al Viro Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin (cherry picked from commit 888841b4a1fc60d064919dde3da80102f8dbe53c) Signed-off-by: Dan Duval --- 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) {