Spdk/lib/bdev
Tianyu Yang 96b759297f lib/bdev: fix coredump when bdev initialize failed.
If subsystem bdev module initialize failed, it will call
spdk_bdev_init_complete(-1) -> (subsystem bdev)->fini
_spdk_bdev_finish_unregister_bdevs_iter -> spdk_bdev_module_finish_iter

In abovt path, spdk_bdev_module_finish_iter will repeate to call
bdev_module->module_fini function. Some bdevs will call spdk_io_device_unregister
which never call spdk_io_device_register. It will coredump when assert false in
spdk_io_device_unregister dev is null.

To fix this, let's check whether g_bdev_mgr.module_init_complete is equals true
and then call the bdev_module->module_fini.

Change-Id: Ia9a13318720d954e40eb2d666574bcb86e5f49e3
Signed-off-by: Tianyu Yang <yangtianyu2@huawei.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/462382
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-07-19 06:29:25 +00:00
..
aio aio/rpc: Add more descriptive error messages for aio bdevs 2019-07-10 08:29:21 +00:00
compress bdev/compress: add more descriptive rpc error messages 2019-07-18 04:25:44 +00:00
crypto bdev/crypto: add more descriptive rpc error messages 2019-07-10 08:29:21 +00:00
delay bdev/delay: update rpc error messages 2019-07-18 04:25:40 +00:00
error bdev/error: add more descriptive rpc error messages 2019-07-18 04:25:27 +00:00
gpt bdev/gpt: call get buffer function before forwarding read I/O to the base bdev 2019-07-12 02:25:57 +00:00
iscsi bdev/iscsi: add more descriptive rpc error messages 2019-07-18 04:25:09 +00:00
lvol bdev/lvol: add more descriptive rpc error messages 2019-07-18 03:24:26 +00:00
malloc bdev/rpc: Add descriptive error messages for malloc bdevs 2019-07-10 08:29:21 +00:00
null null/rpc: Add more descriptive error messages for null bdevs 2019-07-10 08:29:21 +00:00
nvme lib/ftl: notify init/fini callbacks on proper threads 2019-07-12 12:39:38 +00:00
ocf ocf: Improve handling of partial IOs 2019-06-07 18:18:42 +00:00
passthru bdev/passthru: add more descriptive rpc error messages 2019-07-18 03:25:06 +00:00
pmem bdev: process failure of spdk_bdev_io_get_buf_cb in each bdev module 2019-02-27 07:28:15 +00:00
raid bdev/raid: add more descriptive rpc error messages 2019-07-18 04:24:45 +00:00
rbd bdev/rbd: add more descriptive rpc error messages 2019-07-19 02:21:53 +00:00
rpc bdev/rpc: add more descriptive rpc error messages 2019-07-18 07:52:07 +00:00
split bdev/split: call get buffer function before forwarding read I/O to the base bdev 2019-07-12 02:25:57 +00:00
uring bdev/uring: adjust to the latest io_uring API 2019-06-07 18:43:07 +00:00
virtio bdev/virtio: add more descriptive rpc error messages 2019-07-18 05:34:52 +00:00
bdev.c lib/bdev: fix coredump when bdev initialize failed. 2019-07-19 06:29:25 +00:00
Makefile bdev: add uring in bdev Makefile 2019-06-11 00:26:48 +00:00
part.c bdev/part: Remap DIF reference tag for read/write I/O 2019-07-11 11:14:22 +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