Skip to contentSkip to conversation

FAILED: patch "[PATCH] iser-target: Fix session hang in case of an rdma read DIF" failed to apply to 3.14-stable tree

PATCH [email protected] 1 participant 1 message May 2, 2015

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 3.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 364189f0ada5478e4faf8a552d6071a650d757cd Mon Sep 17 00:00:00 2001

From: Sagi Grimberg <[email protected]>
Date: Sun, 29 Mar 2015 15:52:03 +0300
Subject: [PATCH] iser-target: Fix session hang in case of an rdma read DIF
error

This hang was a result of a missing command put when a DIF error occurred during a rdma read (and we sent an CHECK_CONDITION error without passing it to the backend).

drivers/infiniband/ulp/isert/ib_isert.c +4 -2
index 075b19cc78e8..4b8d518826b9 100644
@@ -1861,11 +1861,13 @@ isert_completion_rdma_read(struct iser_tx_desc *tx_desc,
 	cmd->i_state = ISTATE_RECEIVED_LAST_DATAOUT;
 	spin_unlock_bh(&cmd->istate_lock);
 
-	if (ret)
+	if (ret) {
+		target_put_sess_cmd(se_cmd->se_sess, se_cmd);
 		transport_send_check_condition_and_sense(se_cmd,
 							 se_cmd->pi_err, 0);
-	else
+	} else {
 		target_execute_cmd(se_cmd);
+	}
 }
 
 static void