linux-kernelorg-stable/block
Yu Kuai 454bb67752 blk-mq: clear active_queues before clearing BLK_MQ_F_TAG_QUEUE_SHARED
We run a test that delete and recover devcies frequently(two devices on
the same host), and we found that 'active_queues' is super big after a
period of time.

If device a and device b share a tag set, and a is deleted, then
blk_mq_exit_queue() will clear BLK_MQ_F_TAG_QUEUE_SHARED because there
is only one queue that are using the tag set. However, if b is still
active, the active_queues of b might never be cleared even if b is
deleted.

Thus clear active_queues before BLK_MQ_F_TAG_QUEUE_SHARED is cleared.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20210731062130.1533893-1-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-08-13 08:01:34 -06:00
..
partitions block/partitions/ldm.c: Fix a kernel-doc warning 2021-08-05 11:49:01 -06:00
Kconfig block: Introduce the ioprio rq-qos policy 2021-06-21 15:03:40 -06:00
Kconfig.iosched Revert "block/mq-deadline: Add cgroup support" 2021-08-11 13:47:26 -06:00
Makefile Revert "block/mq-deadline: Add cgroup support" 2021-08-11 13:47:26 -06:00
badblocks.c
bfq-cgroup.c block, bfq: merge bursts of newly-created queues 2021-03-25 10:50:07 -06:00
bfq-iosched.c blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
bfq-iosched.h block, bfq: merge bursts of newly-created queues 2021-03-25 10:50:07 -06:00
bfq-wf2q.c block, bfq: always inject I/O of queues blocked by wakers 2021-03-25 10:50:07 -06:00
bio-integrity.c block: remove BLK_BOUNCE_ISA support 2021-04-06 09:28:17 -06:00
bio.c block: fix trace completion for chained bio 2021-06-24 09:53:50 -06:00
blk-cgroup-rwstat.c blk-cgroup: Fix the recursive blkg rwstat 2021-03-05 11:32:15 -07:00
blk-cgroup-rwstat.h
blk-cgroup.c blk-cgroup: prevent rcu_sched detected stalls warnings while iterating blkgs 2021-07-07 09:36:36 -06:00
blk-core.c block: fix the problem of io_ticks becoming smaller 2021-07-07 06:43:20 -06:00
blk-crypto-fallback.c block: rename BIO_MAX_PAGES to BIO_MAX_VECS 2021-03-11 07:47:48 -07:00
blk-crypto-internal.h
blk-crypto.c
blk-exec.c block: return errors from blk_execute_rq() 2021-06-30 15:35:45 -06:00
blk-flush.c block: avoid double io accounting for flush request 2021-05-24 06:47:21 -06:00
blk-integrity.c
blk-ioc.c
blk-iocost.c blk-iocost: fix lockdep warning on blkcg->lock 2021-08-09 20:00:26 -06:00
blk-iolatency.c blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit() 2021-08-05 11:18:13 -06:00
blk-ioprio.c block: Introduce the ioprio rq-qos policy 2021-06-21 15:03:40 -06:00
blk-ioprio.h block: Introduce the ioprio rq-qos policy 2021-06-21 15:03:40 -06:00
blk-lib.c block: export blk_next_bio() 2021-06-17 15:51:20 +02:00
blk-map.c block: remove an incorrect check from blk_rq_append_bio 2021-04-12 06:45:12 -06:00
blk-merge.c block: fix discard request merge 2021-06-29 07:41:08 -06:00
blk-mq-cpumap.c
blk-mq-debugfs-zoned.c
blk-mq-debugfs.c block: Introduce the ioprio rq-qos policy 2021-06-21 15:03:40 -06:00
blk-mq-debugfs.h
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c blk-mq-sched: Fix blk_mq_sched_alloc_tags() error handling 2021-07-27 16:44:38 -06:00
blk-mq-sched.h blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
blk-mq-sysfs.c
blk-mq-tag.c blk-mq: Use request queue-wide tags for tagset-wide sbitmap 2021-05-24 06:47:22 -06:00
blk-mq-tag.h blk-mq: Some tag allocation code refactoring 2021-05-24 06:47:22 -06:00
blk-mq-virtio.c
blk-mq.c blk-mq: clear active_queues before clearing BLK_MQ_F_TAG_QUEUE_SHARED 2021-08-13 08:01:34 -06:00
blk-mq.h blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
blk-pm.c
blk-pm.h
blk-rq-qos.c rq-qos: fix missed wake-ups in rq_qos_throttle try two 2021-06-08 15:12:57 -06:00
blk-rq-qos.h block: Introduce the ioprio rq-qos policy 2021-06-21 15:03:40 -06:00
blk-settings.c block-5.13-2021-05-09 2021-05-09 13:25:14 -07:00
blk-stat.c
blk-stat.h
blk-sysfs.c block: mark queue init done at the end of blk_register_queue 2021-06-16 08:41:50 -06:00
blk-throttle.c
blk-timeout.c
blk-wbt.c blk-wbt: make sure throttle is enabled properly 2021-06-21 15:03:41 -06:00
blk-wbt.h blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled() 2021-06-21 15:03:41 -06:00
blk-zoned.c blk-zoned: Remove the definition of blk_zone_start() 2021-04-07 14:31:45 -06:00
blk.h blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
bounce.c block: stop calling blk_queue_bounce for passthrough requests 2021-04-06 09:28:18 -06:00
bsg-lib.c block: remove REQ_OP_SCSI_{IN,OUT} 2021-06-30 15:34:19 -06:00
bsg.c block: remove REQ_OP_SCSI_{IN,OUT} 2021-06-30 15:34:19 -06:00
cmdline-parser.c
disk-events.c block: add the events* attributes to disk_attrs 2021-06-24 12:00:22 -06:00
elevator.c blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
genhd.c block: delay freeing the gendisk 2021-07-27 19:35:47 -06:00
ioctl.c block: move bd_part_count to struct gendisk 2021-06-01 07:45:27 -06:00
ioprio.c block: Fix sys_ioprio_set(.which=IOPRIO_WHO_PGRP) task iteration 2021-04-08 13:43:53 -06:00
keyslot-manager.c
kyber-iosched.c kyber: make trace_block_rq call consistent with documentation 2021-08-06 16:40:47 -06:00
mq-deadline.c Revert "block/mq-deadline: Add cgroup support" 2021-08-11 13:47:26 -06:00
opal_proto.h
scsi_ioctl.c block: remove REQ_OP_SCSI_{IN,OUT} 2021-06-30 15:34:19 -06:00
sed-opal.c
t10-pi.c