Spdk/include
GangCao 7bcd316de1 bdev: abort all IOs when unregistering the bdev
To fix issue: #2484

When unregistering the bdev, will send out the message
to each thread to abort all the IOs including IOs from
nomem_io queue, need_buf_small queue and need_buf_large queue.

The new SPDK_BDEV_STATUS_UNREGISTERING state is newly
added to indicate this unregister operation.

In this case, the bdev unregister operation becomes the
async operation as each thread will be sent the message
to abort the IOs and as the last step, it will unregister
the required bdev and associted io device.

On the other hand, the queued_resets will be handled
separately and not aborted in the bdev unregister.

New unit test cases are also added:
  enomem_multi_bdev_unregister: to abort the IO from
nomem_io queue during the unregister operation
  bdev_open_ext_unregister: to handle the events and
async operations from the unregister operation

Change-Id: Ib1663c0f71ffe87144869cb3a684e18eb956046b
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12573
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
2022-05-18 07:30:00 +00:00
..
linux vhost: update virtion_config.h and virtio_ring.h 2019-12-20 10:04:27 +00:00
spdk bdev: abort all IOs when unregistering the bdev 2022-05-18 07:30:00 +00:00
spdk_internal lib/accel: support multiple accel modules (aka engines) at once 2022-05-05 07:11:32 +00:00
Makefile build: Copy headers to build/include on build 2020-06-15 15:27:16 +00:00