Spdk/lib/bdev
Shuhei Matsumoto 1212b53fb8 bdev: Add spdk_bdev_for_each_bdev_io() to execute function for each bdev_io
Some use cases want to abort every bdev_io submitted to the bdev by
traversing the bdev channels.

However, struct spdk_bdev_channel is private in lib/bdev/bdev.c.

Hence, add a helper function spdk_bdev_for_each_bdev_io() to execute
the function on the appropriate thread for every bdev_io submitted
to the bdev.

This function should be used only from the bdev module and it should
be ensured that the bdev is not unregistered during execution.

We keep this function as generic as possible because we may have
other use cases in future.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ic0209361bd1228ea8d4cb3241d0df07106be58d9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12751
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-09-09 12:55:39 +00:00
..
bdev_internal.h Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bdev_rpc.c Lib/Bdev: add the new utility function 2022-09-08 07:23:07 +00:00
bdev_zone.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
bdev.c bdev: Add spdk_bdev_for_each_bdev_io() to execute function for each bdev_io 2022-09-09 12:55:39 +00:00
Makefile Bdev: remove the QD poller at the time of Bdev unregister 2022-06-28 18:13:02 +00:00
part.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
scsi_nvme.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
spdk_bdev.map bdev: Add spdk_bdev_for_each_bdev_io() to execute function for each bdev_io 2022-09-09 12:55:39 +00:00
vtune.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00