numam-spdk/lib/nvme
Alexey Marchuk c7bb68aa3e nvme: Handle errors returned by submit function
When a request is submitted, it may have incorrect iov
alignment that doesn't fit PRP requirements. In the
current version an internal function fails such a request
and returns a NULL pointer. This is mapped to -ENOMEM
error which is returned to generic bdev layer where
such a request is queued in a "nomem_io" queue and
later can be resubmitted. That is incorrect and such
a request must be completed immediately. To fail the
request, we need to differentiate between -ENOMEM and
other cases, so we pass a pointer to a result to
local nvme functions

Change-Id: I7120d49114d801497a71fca5a23b172732d088de
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7036
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-04-05 22:58:57 +00:00
..
Makefile nvme: Add the interface to get the optimal polling group 2021-02-04 08:30:54 +00:00
nvme_ctrlr_cmd.c lib/nvme: add two async API for Directive Send and Directive Receive. 2021-01-20 16:27:34 +00:00
nvme_ctrlr_ocssd_cmd.c nvme: Move nsdata to namespace structure 2021-03-02 08:06:15 +00:00
nvme_ctrlr.c nvme: Move nsdata_zns to namespace structure 2021-03-02 08:06:15 +00:00
nvme_cuse.c lib/env_dpdk: Change the location of lock files from /tmp to /var/tmp 2020-11-17 08:25:31 +00:00
nvme_cuse.h lib/nvme: add RPC for interacting with CUSE devices 2019-10-24 23:43:59 +00:00
nvme_fabric.c nvme/fabric: Make connect related logs more verbose 2021-02-17 10:18:05 +00:00
nvme_internal.h nvme/quirk: add MDTS excludes interleaved metadata quirk 2021-03-29 07:38:37 +00:00
nvme_io_msg.c lib/nvme: update io msg producers on ns manage 2020-06-05 09:01:44 +00:00
nvme_io_msg.h lib/nvme: update io msg producers on ns manage 2020-06-05 09:01:44 +00:00
nvme_ns_cmd.c nvme: Handle errors returned by submit function 2021-04-05 22:58:57 +00:00
nvme_ns_ocssd_cmd.c nvme: save separate metadata size to nvme request 2020-04-02 07:02:38 +00:00
nvme_ns.c nvme/quirk: add MDTS excludes interleaved metadata quirk 2021-03-29 07:38:37 +00:00
nvme_opal_internal.h nvme/opal: deprecate spdk_opal_supported() 2020-05-20 14:16:44 +00:00
nvme_opal.c lib/opal: remove deprecated spdk_opal_supported() 2021-03-18 14:43:08 +00:00
nvme_pcie_common.c nvme: zero shadow doorbell registers when freeing qpair 2021-03-09 08:53:36 +00:00
nvme_pcie_internal.h nvme/pcie: move the common IO path APIs to nvme_pcie_common.c 2021-01-26 16:30:10 +00:00
nvme_pcie.c nvme: add set_nvme_pcie_set_hotplug_filter 2021-02-09 11:27:19 +00:00
nvme_poll_group.c nvme: Add a new parameter in spdk_nvme_poll_group_create 2021-03-18 14:42:35 +00:00
nvme_qpair.c nvme: add spdk_nvme_qpair_get_id 2021-02-17 10:17:43 +00:00
nvme_quirks.c nvme/quirk: add MDTS excludes interleaved metadata quirk 2021-03-29 07:38:37 +00:00
nvme_rdma.c nvme: assert if user tries to delete NULL tcp qpair 2021-03-18 14:41:44 +00:00
nvme_tcp.c nvme/tcp: Fix the zero copy enablement issue. 2021-03-26 08:22:53 +00:00
nvme_transport.c nvme: Add the interface to get the optimal polling group 2021-02-04 08:30:54 +00:00
nvme_uevent.c lib/nvme: Add error handler for parse_event 2020-11-17 08:25:31 +00:00
nvme_uevent.h nvme: read all uevents 2020-08-24 07:38:33 +00:00
nvme_vfio_user.c nvme/pcie: move the common IO path APIs to nvme_pcie_common.c 2021-01-26 16:30:10 +00:00
nvme_zns.c nvme: Move nsdata_zns to namespace structure 2021-03-02 08:06:15 +00:00
nvme.c nvme: add a new custom transport SPDK_NVME_TRANSPORT_VFIOUSER 2021-01-21 05:00:18 +00:00
spdk_nvme.map lib/opal: remove deprecated spdk_opal_supported() 2021-03-18 14:43:08 +00:00