diff options
author | Mike Snitzer <snitzer@redhat.com> | 2016-02-02 22:35:06 -0500 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2016-02-22 11:06:20 -0500 |
commit | e522c039059b0fdf5ecd15d7007026326fffc9be (patch) | |
tree | a5430d774614667b9f62349d437939e60fd35be0 /drivers/md/dm.c | |
parent | ae6ad75e5c3c51f99c57e289058c5ec4c8701963 (diff) |
dm: cleanup dm_any_congested()
The request-based DM support for checking queue congestion doesn't
require access to the live DM table.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r-- | drivers/md/dm.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 30302df20201..d605170a02d9 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -2137,19 +2137,18 @@ static int dm_any_congested(void *congested_data, int bdi_bits) struct dm_table *map; if (!test_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags)) { - map = dm_get_live_table_fast(md); - if (map) { + if (dm_request_based(md)) { /* - * Request-based dm cares about only own queue for - * the query about congestion status of request_queue + * With request-based DM we only need to check the + * top-level queue for congestion. */ - if (dm_request_based(md)) - r = md->queue->backing_dev_info.wb.state & - bdi_bits; - else + r = md->queue->backing_dev_info.wb.state & bdi_bits; + } else { + map = dm_get_live_table_fast(md); + if (map) r = dm_table_any_congested(map, bdi_bits); + dm_put_live_table_fast(md); } - dm_put_live_table_fast(md); } return r; |