summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/md/bcache/movinggc.c2
-rw-r--r--drivers/md/bcache/tier.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/bcache/movinggc.c b/drivers/md/bcache/movinggc.c
index 917fd6ff9e00..3c85d491fec4 100644
--- a/drivers/md/bcache/movinggc.c
+++ b/drivers/md/bcache/movinggc.c
@@ -75,6 +75,8 @@ static void read_moving(struct cache *ca, size_t buckets_to_move,
bch_btree_iter_init(&iter, c, BTREE_ID_EXTENTS, POS_MIN);
while (1) {
+ if (kthread_should_stop())
+ goto out;
if (bch_move_ctxt_wait(&ctxt))
goto out;
k = bch_btree_iter_peek(&iter);
diff --git a/drivers/md/bcache/tier.c b/drivers/md/bcache/tier.c
index bbace2f1a6b1..b8516e8c6871 100644
--- a/drivers/md/bcache/tier.c
+++ b/drivers/md/bcache/tier.c
@@ -126,7 +126,8 @@ static s64 read_tiering(struct cache_set *c, struct cache_group *tier)
nr_devices * SECTORS_IN_FLIGHT_PER_DEVICE);
bch_btree_iter_init(&iter, c, BTREE_ID_EXTENTS, POS_MIN);
- while (!bch_move_ctxt_wait(&ctxt) &&
+ while (!kthread_should_stop() &&
+ !bch_move_ctxt_wait(&ctxt) &&
(k = bch_btree_iter_peek(&iter)).k &&
!btree_iter_err(k)) {
if (!tiering_pred(c, &s, k))