Spdk/lib/bdev
wuzhouhui f118de60af bdev: fix race condition between spdk_bdev_close and _remove_notify
When new bdev was created, the struct spdk_bdev_module::examine_disk()
may open and close bdev. On the other hand, if something goes wrong,
the creation procedure may unregister new created bdev, so race
condition appeared between _remove_notify() and spdk_bdev_close().

Add the new field "closed" and "remove_notified" in struct spdk_bdev_desc,
so _remove_notify() and spdk_bdev_close() knows how to deal with this
situation.

Change-Id: Ibfe915a4d76096796b039a13a4f49f26669eba2c
Signed-off-by: wuzhouhui <wuzhouhui@kingsoft.com>
Reviewed-on: https://review.gerrithub.io/423369
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2018-09-06 20:59:05 +00:00
..
aio thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
error bdev/part: use internal buffers for part and product name. 2018-08-30 22:08:56 +00:00
gpt bdev/gpt: vbdev_gpt_examine: no need to read gpt if bdev is too small 2018-09-06 16:53:36 +00:00
iscsi thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
lvol bdev/lvol: _create_lvol_disk(): unregister disk if something wrong 2018-09-05 21:57:55 +00:00
malloc bdev/malloc: remove blocklen power of 2 restriction 2018-08-15 17:36:00 +00:00
null thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
nvme thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
passthru thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
pmem thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
raid thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
rbd bdev/rbd: fix memory leak and spdk_io_device_register fail 2018-09-05 19:26:24 +00:00
rpc bdev: remove get_bdevs_config RPC 2018-09-05 19:46:17 +00:00
split bdev/part: use internal buffers for part and product name. 2018-08-30 22:08:56 +00:00
virtio thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
bdev.c bdev: fix race condition between spdk_bdev_close and _remove_notify 2018-09-06 20:59:05 +00:00
Makefile bdev: add raid bdev module 2018-07-16 20:50:40 +00:00
part.c thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +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 bdev: disable new GCC 7 warning in VTune code 2018-03-19 15:58:15 -04:00