Skip to contentSkip to conversation

iscsi-target: Fix CmdSN comparison (use cmd->cmd_sn instead of cmd->stat_sn)

PATCH In review Roland Dreier 2 participants 2 messages Jan 7, 2013 – Jan 11, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 iscsi-target: Fix CmdSN comparison (use cmd->cmd_sn instead of cmd->stat_sn)

From: Roland Dreier <[email protected]>

Commit 64c13330a389 ("iscsi-target: Fix bug in handling of ExpStatSN ACK during u32 wrap-around") introduced a bug where we compare the wrong SN against our ExpCmdSN.

---
 drivers/target/iscsi/iscsi_target_erl2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/target/iscsi/iscsi_target_erl2.c +1 -1
index 9ac4c151..ba6091b 100644
@@ -372,7 +372,7 @@ int iscsit_prepare_cmds_for_realligance(struct iscsi_conn *conn)
 		 * made generic here.
 		 */
 		if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd &&
-		     iscsi_sna_gte(cmd->stat_sn, conn->sess->exp_cmd_sn)) {
+		     iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) {
 			list_del(&cmd->i_conn_node);
 			spin_unlock_bh(&conn->cmd_lock);
 			iscsit_free_cmd(cmd);
Signature · 1 line
1.8.0
#1 lore raw
Quoted 17 lines · Roland Dreier

From: Roland Dreier <[email protected]>

Commit 64c13330a389 ("iscsi-target: Fix bug in handling of ExpStatSN ACK during u32 wrap-around") introduced a bug where we compare the wrong SN against our ExpCmdSN.

---
 drivers/target/iscsi/iscsi_target_erl2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/target/iscsi/iscsi_target_erl2.c +0 -0
index 9ac4c151..ba6091b 100644

drivers/target/iscsi/iscsi_target_erl2.c int iscsit_prepare_cmds_for_realligance(struct iscsi_conn *conn) · line 378

Quoted 8 lines
drivers/target/iscsi/iscsi_target_erl2.c +1 -1
@@ -372,7 +372,7 @@ int iscsit_prepare_cmds_for_realligance(struct iscsi_conn *conn)
 		 * made generic here.
 		 */
 		if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd &&
-		     iscsi_sna_gte(cmd->stat_sn, conn->sess->exp_cmd_sn)) {
+		     iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) {
 			list_del(&cmd->i_conn_node);
 			spin_unlock_bh(&conn->cmd_lock);
 			iscsit_free_cmd(cmd);

Thanks for fixing this up. Applied with another 'CC to stable for Ben & Co. to pick this up..

--nab