From 153e6ba07cabca4cea866588679ae9181a4a303a Mon Sep 17 00:00:00 2001 From: Peter Lieven Date: Mon, 30 Mar 2015 12:31:24 +0200 Subject: [PATCH] pdu: set pdu->cmdsn when the pdu structure is updated Signed-off-by: Peter Lieven --- lib/iscsi-command.c | 4 +--- lib/login.c | 2 -- lib/nop.c | 5 ++--- lib/pdu.c | 1 + lib/socket.c | 2 +- lib/task_mgmt.c | 1 - 6 files changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index ac6b683..b7da624 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -302,9 +302,7 @@ iscsi_scsi_command_async(struct iscsi_context *iscsi, int lun, iscsi_pdu_set_expxferlen(pdu, task->expxferlen); /* cmdsn */ - iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn; - iscsi->cmdsn++; + iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn++); /* cdb */ iscsi_pdu_set_cdb(pdu, task); diff --git a/lib/login.c b/lib/login.c index 0d56518..f0e8be4 100644 --- a/lib/login.c +++ b/lib/login.c @@ -813,7 +813,6 @@ iscsi_login_async(struct iscsi_context *iscsi, iscsi_command_cb cb, /* cmdsn is not increased if Immediate delivery*/ iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn; if (!iscsi->user[0]) { iscsi->current_phase = ISCSI_PDU_LOGIN_CSG_OPNEG; @@ -1284,7 +1283,6 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb, /* cmdsn is not increased if Immediate delivery*/ iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn; pdu->callback = cb; pdu->private_data = private_data; diff --git a/lib/nop.c b/lib/nop.c index 701f31a..e010673 100644 --- a/lib/nop.c +++ b/lib/nop.c @@ -55,8 +55,8 @@ iscsi_nop_out_async(struct iscsi_context *iscsi, iscsi_command_cb cb, /* lun */ iscsi_pdu_set_lun(pdu, 0); - iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn++; + /* cmdsn */ + iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn++); pdu->callback = cb; pdu->private_data = private_data; @@ -112,7 +112,6 @@ iscsi_send_target_nop_out(struct iscsi_context *iscsi, uint32_t ttt) /* cmdsn is not increased if Immediate delivery*/ iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn; if (iscsi_queue_pdu(iscsi, pdu) != 0) { iscsi_set_error(iscsi, "failed to queue iscsi nop-out pdu"); diff --git a/lib/pdu.c b/lib/pdu.c index d363cfa..d6b09ca 100644 --- a/lib/pdu.c +++ b/lib/pdu.c @@ -625,6 +625,7 @@ void iscsi_pdu_set_cmdsn(struct iscsi_pdu *pdu, uint32_t cmdsn) { scsi_set_uint32(&pdu->outdata.data[24], cmdsn); + pdu->cmdsn = cmdsn; } void diff --git a/lib/socket.c b/lib/socket.c index 803917e..dd2e4bb 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -97,7 +97,7 @@ iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) */ if (pdu->outdata.data[0] & ISCSI_PDU_IMMEDIATE) { - pdu->cmdsn = current->cmdsn; + iscsi_pdu_set_cmdsn(pdu, current->cmdsn); } do { diff --git a/lib/task_mgmt.c b/lib/task_mgmt.c index 0847103..237ccad 100644 --- a/lib/task_mgmt.c +++ b/lib/task_mgmt.c @@ -73,7 +73,6 @@ iscsi_task_mgmt_async(struct iscsi_context *iscsi, /* cmdsn is not increased if Immediate delivery*/ iscsi_pdu_set_cmdsn(pdu, iscsi->cmdsn); - pdu->cmdsn = iscsi->cmdsn; /* rcmdsn */ iscsi_pdu_set_rcmdsn(pdu, rcmdsn);