diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2016-12-14 17:52:36 -0900 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-01-18 21:41:28 -0900 |
commit | 9c82c100adc96eb194ba73bbcf72f976331e7e24 (patch) | |
tree | 6fbbfc7e83185d5dac5446e4119d0255a53f9dbc | |
parent | fa206fe7416e0adce09c2f678fd5cc8853779181 (diff) |
bcache: check kthread_should_stop() in read_tiering() more often
-rw-r--r-- | drivers/md/bcache/movinggc.c | 2 | ||||
-rw-r--r-- | drivers/md/bcache/tier.c | 3 |
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)) |