lib/bdev: Add spdk_bdev_io_get_cb_arg() to get cb_arg of bdev_io
bdev_io is passed to the callback to the timeout I/O, but the context of bdev_io is stored in cb_arg and spdk_bdev_abort() needs cb_arg. Hence add an new helper function, spdk_bdev_io_get_cb_arg(), to get cb_arg of bdev_io. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I5eb25ffdad2467c55a1b55f8cf0accef8799bb4b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2621 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
97a5ea5796
commit
5bc400f382
@ -1648,6 +1648,14 @@ void spdk_bdev_io_get_iovec(struct spdk_bdev_io *bdev_io, struct iovec **iovp, i
|
|||||||
*/
|
*/
|
||||||
void *spdk_bdev_io_get_md_buf(struct spdk_bdev_io *bdev_io);
|
void *spdk_bdev_io_get_md_buf(struct spdk_bdev_io *bdev_io);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the callback argument of bdev_io to abort it by spdk_bdev_abort.
|
||||||
|
*
|
||||||
|
* \param bdev_io I/O to get the callback argument from.
|
||||||
|
* \return Callback argument of bdev_io.
|
||||||
|
*/
|
||||||
|
void *spdk_bdev_io_get_cb_arg(struct spdk_bdev_io *bdev_io);
|
||||||
|
|
||||||
typedef void (*spdk_bdev_histogram_status_cb)(void *cb_arg, int status);
|
typedef void (*spdk_bdev_histogram_status_cb)(void *cb_arg, int status);
|
||||||
typedef void (*spdk_bdev_histogram_data_cb)(void *cb_arg, int status,
|
typedef void (*spdk_bdev_histogram_data_cb)(void *cb_arg, int status,
|
||||||
struct spdk_histogram_data *histogram);
|
struct spdk_histogram_data *histogram);
|
||||||
|
@ -5793,6 +5793,17 @@ spdk_bdev_io_get_md_buf(struct spdk_bdev_io *bdev_io)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *
|
||||||
|
spdk_bdev_io_get_cb_arg(struct spdk_bdev_io *bdev_io)
|
||||||
|
{
|
||||||
|
if (bdev_io == NULL) {
|
||||||
|
assert(false);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return bdev_io->internal.caller_ctx;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
spdk_bdev_module_list_add(struct spdk_bdev_module *bdev_module)
|
spdk_bdev_module_list_add(struct spdk_bdev_module *bdev_module)
|
||||||
{
|
{
|
||||||
|
@ -86,6 +86,7 @@
|
|||||||
spdk_bdev_io_get_scsi_status;
|
spdk_bdev_io_get_scsi_status;
|
||||||
spdk_bdev_io_get_iovec;
|
spdk_bdev_io_get_iovec;
|
||||||
spdk_bdev_io_get_md_buf;
|
spdk_bdev_io_get_md_buf;
|
||||||
|
spdk_bdev_io_get_cb_arg;
|
||||||
spdk_bdev_histogram_enable;
|
spdk_bdev_histogram_enable;
|
||||||
spdk_bdev_histogram_get;
|
spdk_bdev_histogram_get;
|
||||||
spdk_bdev_get_media_events;
|
spdk_bdev_get_media_events;
|
||||||
|
Loading…
Reference in New Issue
Block a user