From 166c12eb495fb7747bb287bcbe200e0fd1a97503 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 14 Oct 2015 22:21:47 +0000 Subject: [PATCH] ib_srpt: Account RDMA writes into sq_wr_avail git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6544 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- srpt/src/ib_srpt.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index f875bc3f4..3a69578a8 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -3604,12 +3604,25 @@ static int srpt_xmit_response(struct scst_cmd *cmd) if (dir == SCST_DATA_READ && scst_cmd_get_adjusted_resp_data_len(cmd)) { ret = srpt_xfer_data(ch, ioctx); - if (unlikely(ret != SCST_TGT_RES_SUCCESS)) { + if (unlikely(ret != 0)) { srpt_set_cmd_state(ioctx, state); pr_warn("xfer_data failed for tag %llu - %s\n", scst_cmd_get_tag(cmd), - ret == SCST_TGT_RES_QUEUE_FULL ? "retrying" : + ret == -EAGAIN ? "retrying" : "failing"); + switch (ret) { + case -EAGAIN: + ret = SCST_TGT_RES_QUEUE_FULL; + break; + default: + WARN_ONCE(true, + "srpt_xfer_data() returned %d\n", + ret); + /* fall-through */ + case -EIO: + ret = SCST_TGT_RES_FATAL_ERROR; + break; + } goto out; } }