Star64_linux/block
Ming Lei f9934a80f9 blk-mq: introduce blk_mq_tagset_wait_completed_request()
blk-mq may schedule to call queue's complete function on remote CPU via
IPI, but doesn't provide any way to synchronize the request's complete
fn. The current queue freeze interface can't provide the synchonization
because aborted requests stay at blk-mq queues during EH.

In some driver's EH(such as NVMe), hardware queue's resource may be freed &
re-allocated. If the completed request's complete fn is run finally after the
hardware queue's resource is released, kernel crash will be triggered.

Prepare for fixing this kind of issue by introducing
blk_mq_tagset_wait_completed_request().

Cc: Max Gurtovoy <maxg@mellanox.com>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Keith Busch <keith.busch@intel.com>
Cc: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-08-04 21:41:29 -06:00
..
partitions docs: admin-guide: add a series of orphaned documents 2019-07-15 11:03:02 -03:00
badblocks.c
bfq-cgroup.c
bfq-iosched.c for-linus-20190726 2019-07-26 10:32:12 -07:00
bfq-iosched.h
bfq-wf2q.c
bio-integrity.c block/bio-integrity: fix a memory leak bug 2019-07-11 20:01:21 -06:00
bio.c block: Allow mapping of vmalloc-ed buffers 2019-07-11 20:04:36 -06:00
blk-cgroup.c blkcg: allow blkcg_policy->pd_stat() to print non-debug info too 2019-07-16 10:06:39 -06:00
blk-core.c block: Disable write plugging for zoned block devices 2019-07-10 14:18:01 -06:00
blk-exec.c
blk-flush.c
blk-integrity.c docs: block: convert to ReST 2019-07-15 09:20:27 -03:00
blk-ioc.c
blk-iolatency.c blkcg: allow blkcg_policy->pd_stat() to print non-debug info too 2019-07-16 10:06:39 -06:00
blk-lib.c
blk-map.c
blk-merge.c
blk-mq-cpumap.c
blk-mq-debugfs-zoned.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 block: blk-mq: Remove blk_mq_sched_started_request and started_request 2019-07-23 07:25:09 -06:00
blk-mq-sysfs.c
blk-mq-tag.c blk-mq: introduce blk_mq_tagset_wait_completed_request() 2019-08-04 21:41:29 -06:00
blk-mq-tag.h
blk-mq-virtio.c
blk-mq.c blk-mq: introduce blk_mq_request_completed() 2019-08-04 21:41:29 -06:00
blk-mq.h block: Disable write plugging for zoned block devices 2019-07-10 14:18:01 -06:00
blk-pm.c
blk-pm.h
blk-rq-qos.c rq-qos: use a mb for got_token 2019-07-18 10:20:14 -06:00
blk-rq-qos.h
blk-settings.c block: fix max segment size handling in blk_queue_virt_boundary 2019-07-26 12:50:57 -06:00
blk-softirq.c
blk-stat.c
blk-stat.h
blk-sysfs.c
blk-throttle.c blk-throttle: fix zero wait time for iops throttled group 2019-07-10 09:00:57 -06:00
blk-timeout.c
blk-wbt.c
blk-wbt.h
blk-zoned.c block: Limit zone array allocation size 2019-07-11 20:04:40 -06:00
blk.h
bounce.c
bsg-lib.c
bsg.c
cmdline-parser.c
compat_ioctl.c
elevator.c
genhd.c block: fix sysfs module parameters directory path in comment 2019-07-16 10:16:33 -06:00
ioctl.c
ioprio.c docs: block: convert to ReST 2019-07-15 09:20:27 -03:00
Kconfig docs: cgroup-v1: add it to the admin-guide book 2019-07-15 11:03:02 -03:00
Kconfig.iosched docs: block: convert to ReST 2019-07-15 09:20:27 -03:00
kyber-iosched.c
Makefile
mq-deadline.c docs: block: convert to ReST 2019-07-15 09:20:27 -03:00
opal_proto.h
partition-generic.c
scsi_ioctl.c
sed-opal.c
t10-pi.c