OSDN Git Service

bcache: avoid flushing btree node in cache_set_flush() if io disabled
authorColy Li <colyli@suse.de>
Fri, 28 Jun 2019 11:59:28 +0000 (19:59 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 28 Jun 2019 13:39:14 +0000 (07:39 -0600)
commite6dcbd3e6c91b7828cb305ec324eb7fd9bdea8a0
tree3ead211d04b197c99416945b1f81ed089ea679e3
parent695277f16b3a102fcc22c97fdf2de77c7b19f0b3
bcache: avoid flushing btree node in cache_set_flush() if io disabled

When cache_set_flush() is called for too many I/O errors detected on
cache device and the cache set is retiring, inside the function it
doesn't make sense to flushing cached btree nodes from c->btree_cache
because CACHE_SET_IO_DISABLE is set on c->flags already and all I/Os
onto cache device will be rejected.

This patch checks in cache_set_flush() that whether CACHE_SET_IO_DISABLE
is set. If yes, then avoids to flush the cached btree nodes to reduce
more time and make cache set retiring more faster.

Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/super.c