summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSlava Pestov <sp@daterainc.com>2014-05-20 12:20:28 -0700
committerKent Overstreet <kmo@daterainc.com>2014-08-04 15:23:03 -0700
commita664d0f05a2ec02c8f042db536d84d15d6e19e81 (patch)
treea3edc9ae887c29918be9e17080511bde24c74c89 /drivers
parente5112201c1285841f8b565ece5d6ae7e0d7947a2 (diff)
downloadlinux-stable-a664d0f05a2ec02c8f042db536d84d15d6e19e81.tar.gz
linux-stable-a664d0f05a2ec02c8f042db536d84d15d6e19e81.tar.bz2
linux-stable-a664d0f05a2ec02c8f042db536d84d15d6e19e81.zip
bcache: fix crash on shutdown in passthrough mode
We never started the writeback thread in this case, so don't stop it.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/bcache/super.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 09573c2bcb5d..6ceaec35b871 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1071,7 +1071,8 @@ static void cached_dev_free(struct closure *cl)
struct cached_dev *dc = container_of(cl, struct cached_dev, disk.cl);
cancel_delayed_work_sync(&dc->writeback_rate_update);
- kthread_stop(dc->writeback_thread);
+ if (!IS_ERR_OR_NULL(dc->writeback_thread))
+ kthread_stop(dc->writeback_thread);
mutex_lock(&bch_register_lock);