Commit 0f12c406 authored by Wojciech Malikowski's avatar Wojciech Malikowski Committed by Jim Harris
Browse files

lib/ftl: Propagate ENOMEM error during read to upper layer



ENOMEM is expected when nvme_qpair will be out of resources.
In such a case ENOMEM shall be propagated to allow upper (bdev)
layer proper handling.

Change-Id: Ie647c2d3efff24a8de949a22ac42a31dfd0e78b7
Signed-off-by: default avatarWojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/445580


Reviewed-by: default avatarJakub Radtke <jakub.radtke@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 53d446c8
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -733,10 +733,14 @@ ftl_submit_read(struct ftl_io *io, ftl_next_ppa_fn next_ppa,
					   ftl_io_iovec_addr(io),
					   ftl_ppa_addr_pack(io->dev, ppa), lbk_cnt,
					   ftl_io_cmpl_cb, io, 0);
		if (rc) {

		if (rc != 0 && rc != -ENOMEM) {
			SPDK_ERRLOG("spdk_nvme_ns_cmd_read failed with status: %d\n", rc);
			io->status = -EIO;
			break;
		} else if (rc == -ENOMEM) {
			io->status = rc;
			break;
		}

		ftl_io_update_iovec(io, lbk_cnt);