linux-stable/block
Ming Lei 454be724f6 block: drain queue before waiting for q_usage_counter becoming zero
Now we track legacy requests with .q_usage_counter in commit 055f6e18e0
("block: Make q_usage_counter also track legacy requests"), but that
commit never runs and drains legacy queue before waiting for this counter
becoming zero, then IO hang is caused in the test of pulling disk during IO.

This patch fixes the issue by draining requests before waiting for
q_usage_counter becoming zero, both Mauricio and chenxiang reported this
issue, and observed that it can be fixed by this patch.

Link: https://marc.info/?l=linux-block&m=151192424731797&w=2
Fixes: 055f6e18e08f("block: Make q_usage_counter also track legacy requests")
Cc: Wen Xiong <wenxiong@us.ibm.com>
Tested-by: "chenxiang (M)" <chenxiang66@hisilicon.com>
Tested-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-01-05 09:09:48 -07:00
..
partitions
badblocks.c
bfq-cgroup.c block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP 2017-11-14 20:13:33 -07:00
bfq-iosched.c block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP 2017-11-14 20:13:33 -07:00
bfq-iosched.h block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP 2017-11-14 20:13:33 -07:00
bfq-wf2q.c block, bfq: update blkio stats outside the scheduler lock 2017-11-14 20:13:33 -07:00
bio-integrity.c
bio.c block-throttle: avoid double charge 2017-12-20 11:10:17 -07:00
blk-cgroup.c
blk-core.c block: drain queue before waiting for q_usage_counter becoming zero 2018-01-05 09:09:48 -07:00
blk-exec.c
blk-flush.c
blk-integrity.c
blk-ioc.c
blk-lib.c
blk-map.c block: fix blk_rq_append_bio 2017-12-18 13:55:43 -07:00
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs.c
blk-mq-debugfs.h
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c
blk-mq-sched.h
blk-mq-sysfs.c
blk-mq-tag.c
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c block: drain queue before waiting for q_usage_counter becoming zero 2018-01-05 09:09:48 -07:00
blk-mq.h
blk-settings.c
blk-softirq.c
blk-stat.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
blk-stat.h
blk-sysfs.c blk-sysfs: remove NULL pointer checking in queue_wb_lat_store 2017-11-23 22:00:17 -07:00
blk-tag.c
blk-throttle.c block-throttle: avoid double charge 2017-12-20 11:10:17 -07:00
blk-timeout.c
blk-wbt.c blk-wbt: fix comments typo 2017-11-23 22:00:20 -07:00
blk-wbt.h
blk-zoned.c
blk.h block: drain queue before waiting for q_usage_counter becoming zero 2018-01-05 09:09:48 -07:00
bounce.c block: don't let passthrough IO go into .make_request_fn() 2017-12-18 13:55:43 -07:00
bsg-lib.c
bsg.c
cfq-iosched.c
cmdline-parser.c
compat_ioctl.c
deadline-iosched.c
elevator.c
genhd.c block: genhd.c: fix message typo 2017-11-19 11:02:19 -07:00
ioctl.c
ioprio.c
Kconfig
Kconfig.iosched
kyber-iosched.c kyber: fix another domain token wait queue hang 2017-12-06 12:33:07 -07:00
Makefile
mq-deadline.c
noop-iosched.c
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c
t10-pi.c