lib/nvmf: Add nvmf_ctrlr_abort_request() to call nvmf_bdev_ctrlr_abort_cmd() from transport
If nvmf_ctrlr_abort_request() returns SPDK_NVMF_REQUEST_EXEC_STATUS_COMPLETE, the caller is responsible to call spdk_nvmf_request_complete(). Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I6ed5f8611bcacd20385dd925b9b2e29ed2200269 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3006 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com>
This commit is contained in:
parent
91b80fe287
commit
a8beb79ea3
@ -2165,6 +2165,24 @@ nvmf_ctrlr_abort(struct spdk_nvmf_request *req)
|
||||
return SPDK_NVMF_REQUEST_EXEC_STATUS_ASYNCHRONOUS;
|
||||
}
|
||||
|
||||
int
|
||||
nvmf_ctrlr_abort_request(struct spdk_nvmf_request *req,
|
||||
struct spdk_nvmf_request *req_to_abort)
|
||||
{
|
||||
struct spdk_bdev *bdev;
|
||||
struct spdk_bdev_desc *desc;
|
||||
struct spdk_io_channel *ch;
|
||||
int rc;
|
||||
|
||||
rc = spdk_nvmf_request_get_bdev(req_to_abort->cmd->nvme_cmd.nsid, req_to_abort,
|
||||
&bdev, &desc, &ch);
|
||||
if (rc != 0) {
|
||||
return SPDK_NVMF_REQUEST_EXEC_STATUS_COMPLETE;
|
||||
}
|
||||
|
||||
return nvmf_bdev_ctrlr_abort_cmd(bdev, desc, ch, req, req_to_abort);
|
||||
}
|
||||
|
||||
static int
|
||||
get_features_generic(struct spdk_nvmf_request *req, uint32_t cdw0)
|
||||
{
|
||||
|
@ -352,6 +352,9 @@ void nvmf_ctrlr_abort_aer(struct spdk_nvmf_ctrlr *ctrlr);
|
||||
*/
|
||||
void nvmf_qpair_free_aer(struct spdk_nvmf_qpair *qpair);
|
||||
|
||||
int nvmf_ctrlr_abort_request(struct spdk_nvmf_request *req,
|
||||
struct spdk_nvmf_request *req_to_abort);
|
||||
|
||||
static inline struct spdk_nvmf_ns *
|
||||
_nvmf_subsystem_get_ns(struct spdk_nvmf_subsystem *subsystem, uint32_t nsid)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user