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
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
badblocks.c
badblocks: fix wrong return value in badblocks_set if badblocks are disabled
2017-11-03 11:29:50 -07:00
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
block: remove unnecessary NULL checks in bioset_integrity_free()
2017-10-06 13:03:12 -06:00
bio.c
block-throttle: avoid double charge
2017-12-20 11:10:17 -07:00
blk-cgroup.c
blkcg: add sanity check for blkcg policy operations
2017-11-04 12:31:15 -06:00
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-mq: don't allocate driver tag upfront for flush rq
2017-11-04 12:40:13 -06:00
blk-integrity.c
blk-ioc.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-lib.c
Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block
2017-11-14 15:32:19 -08:00
blk-map.c
block: fix blk_rq_append_bio
2017-12-18 13:55:43 -07:00
blk-merge.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-mq-cpumap.c
blk-mq-debugfs.c
Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block
2017-11-14 15:32:19 -08:00
blk-mq-debugfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-mq-pci.c
blk-mq-rdma.c
blk-mq-sched.c
blk-mq: only run the hardware queue if IO is pending
2017-11-10 19:55:57 -07:00
blk-mq-sched.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-mq-sysfs.c
blk-mq-tag.c
block: remove blk_mq_reinit_tagset
2017-10-18 19:27:49 +02:00
blk-mq-tag.h
Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block
2017-11-14 15:32:19 -08:00
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
Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block
2017-11-14 15:32:19 -08:00
blk-settings.c
block: remove __bio_kmap_atomic
2017-11-10 19:53:25 -07:00
blk-softirq.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-stat.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
blk-stat.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
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
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blk-throttle.c
block-throttle: avoid double charge
2017-12-20 11:10:17 -07:00
blk-timeout.c
block: Fix a race between blk_cleanup_queue() and timeout handling
2017-10-30 13:28:10 -06:00
blk-wbt.c
blk-wbt: fix comments typo
2017-11-23 22:00:20 -07:00
blk-wbt.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
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-lib: fix use-after-free under memory-pressure
2017-10-04 08:35:04 -06:00
bsg.c
block: pass full fmode_t to blk_verify_command
2017-11-10 19:53:25 -07:00
cfq-iosched.c
cmdline-parser.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
compat_ioctl.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
deadline-iosched.c
elevator.c
elevator: allow name aliases
2017-10-25 12:36:50 -06:00
genhd.c
block: genhd.c: fix message typo
2017-11-19 11:02:19 -07:00
ioctl.c
block: move CAP_SYS_ADMIN check in blkdev_roset()
2017-10-25 12:25:00 -06:00
ioprio.c
Kconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Kconfig.iosched
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
kyber-iosched.c
kyber: fix another domain token wait queue hang
2017-12-06 12:33:07 -07:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mq-deadline.c
mq-deadline: add 'deadline' as a name alias
2017-10-25 12:36:55 -06:00
noop-iosched.c
opal_proto.h
partition-generic.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_ioctl.c
block: pass full fmode_t to blk_verify_command
2017-11-10 19:53:25 -07:00
sed-opal.c
t10-pi.c