Spdk/lib/bdev
Jim Harris ec415110c1 bdev: avoid qos submission recursion
_spdk_bdev_io_submit uses the bdev_io->internal.in_submit_request
flag to ensure we unwind in cases where the I/O is completed
inline (i.e. malloc or null bdevs).  But when an I/O gets queued
for QoS, and then we iterate through the queued I/O in
_spdk_bdev_qos_io_submit(), this flag was not getting set
when those I/O would get submitted to the underlying bdev.  This
would allow for _spdk_bdev_qos_io_submit recursion, resulting
in all kinds of different types of memory corruption.

Fixes #613.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I29263f4e7b2ead60f08b60474d210defa803348c

Reviewed-on: https://review.gerrithub.io/c/442127
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Liang Yan <liang.z.yan@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
2019-01-28 05:18:16 +00:00
..
aio bdev_aio: enable double buffering on write path 2018-11-12 21:56:24 +00:00
crypto bdev/crypto: align I/O buffers for encrypt 2019-01-24 21:52:22 +00:00
error bdev/error: remove an unnecessary "enabled" flag 2019-01-15 16:43:20 +00:00
ftl bdev_ftl: Added FTL bdev module 2019-01-24 18:55:56 +00:00
gpt bdev/gpt: examine my_lba in primary header 2019-01-14 21:26:46 +00:00
iscsi bdev: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
lvol lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
malloc Make: Add deps for each shared obj individually 2018-10-09 21:45:26 +00:00
null thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
nvme nvme_rdma: Add source addr info to RPC 2018-12-20 17:31:43 +00:00
passthru bdev/passthru: unregister IO device in vbdev destruct callback 2018-11-16 07:47:55 +00:00
pmem pmem: print logs on debug build 2018-12-05 15:20:07 +00:00
raid bdev/raid: raid_bdev_add_base_device: fix wrong param in log 2018-11-02 22:19:02 +00:00
rbd bdev/rbd: full control over client configuration 2018-12-05 17:49:57 +00:00
rpc histograms: add rpc calls 2019-01-24 14:14:32 +00:00
split bdev/split: use per-base split tailq 2018-11-28 22:51:30 +00:00
virtio bdev/virtio_blk: add unmap feature support 2019-01-12 03:15:37 +00:00
bdev.c bdev: avoid qos submission recursion 2019-01-28 05:18:16 +00:00
Makefile bdev_ftl: Added FTL bdev module 2019-01-24 18:55:56 +00:00
part.c bdev: Improve spdk_bdev_open() to print string describing error number 2019-01-24 10:50:34 +00:00
scsi_nvme.c bdev: move error union to internal spdk_bdev_io struct 2018-06-26 20:04:07 +00:00
vtune.c mk: don't use '-include spdk/config.h' 2018-10-02 23:13:32 +00:00