From f2fd7a713adb0de80e0c6b229bcbae55032dd0ab Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 29 Sep 2010 19:20:35 +0000 Subject: [PATCH] ibmvstgt bug fix. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2312 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- ibmvstgt/src/ibmvstgt.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ibmvstgt/src/ibmvstgt.c b/ibmvstgt/src/ibmvstgt.c index 129a31c13..d7bc53e75 100644 --- a/ibmvstgt/src/ibmvstgt.c +++ b/ibmvstgt/src/ibmvstgt.c @@ -411,8 +411,8 @@ static int ibmvstgt_xmit_response(struct scst_cmd *sc) if (dir == DMA_FROM_DEVICE && scst_cmd_get_adjusted_resp_data_len(sc)) { ret = srp_transfer_data(sc, &vio_iu(iue)->srp.cmd, ibmvstgt_rdma, 1, 1); - scst_rx_data(sc, ret ? SCST_RX_STATUS_ERROR - : SCST_RX_STATUS_SUCCESS, SCST_CONTEXT_SAME); + if (ret) + scst_set_delivery_status(sc, SCST_CMD_DELIVERY_FAILED); } send_rsp(iue, sc, scst_cmd_get_status(sc), 0); @@ -443,12 +443,15 @@ static int ibmvstgt_rdy_to_xfer(struct scst_cmd *sc) ret = srp_transfer_data(sc, &vio_iu(iue)->srp.cmd, ibmvstgt_rdma, 1, 1); - if (ret != SCST_TGT_RES_SUCCESS) { + if (!ret) { + scst_rx_data(sc, SCST_RX_STATUS_SUCCESS, + SCST_CONTEXT_SAME); + } else { PRINT_ERROR("%s: tag= %llu xfer_data failed", __func__, (long long unsigned) be64_to_cpu(scst_cmd_get_tag(sc))); - scst_set_cmd_error(sc, - SCST_LOAD_SENSE(scst_sense_write_error)); + scst_rx_data(sc, SCST_RX_STATUS_ERROR, + SCST_CONTEXT_SAME); } }