From 791ee7deb4d3fdaab61d0454ff7638ba2e7be8e1 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 6 Jan 2022 15:42:58 +0900 Subject: [PATCH] nvme_rdma: nvme_rdma_process_events() returns negated errno It will be convenient for the following patches to return negated errno directly. Change-Id: Ic80181b2ee449946dd60ad0c97a325fd48b92231 Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10990 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Ben Walker --- lib/nvme/nvme_rdma.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index f401d209c..55e7260b0 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -585,11 +585,10 @@ nvme_rdma_poll_events(struct nvme_rdma_ctrlr *rctrlr) } } - if (errno == EAGAIN || errno == EWOULDBLOCK) { - return 0; - } else { - return errno; - } + /* rdma_get_cm_event() returns -1 on error. If an error occurs, errno + * will be set to indicate the failure reason. So return negated errno here. + */ + return -errno; } static int @@ -652,11 +651,14 @@ nvme_rdma_process_event(struct nvme_rdma_qpair *rqpair, rctrlr = nvme_rdma_ctrlr(rqpair->qpair.ctrlr); assert(rctrlr != NULL); - while (!rqpair->evt && spdk_get_ticks() < timeout_ticks && rc == 0) { + while (!rqpair->evt && spdk_get_ticks() < timeout_ticks) { rc = nvme_rdma_poll_events(rctrlr); + if (rc == -EAGAIN || rc == -EWOULDBLOCK) { + continue; + } } - if (rc) { + if (rc != 0 && rc != -EAGAIN && rc != -EWOULDBLOCK) { goto exit; }