DATASN: We have to increment DATASN in each DATA-OUT PDU in a sequence.
For writes that span across multiple DATA-OUT segments we have to increment the DATASN field for each segment. We didnt use to, and most targets were perfectly happy, ignoring that the DATASN was constant 0 for every DATAOUT we sent. LIO however does check this and did cause it to reject the libiscsi test tool. (This is something we should write a iscsi test for so we can flag all non-LIO targets as broken and needing to be fixed) Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -182,6 +182,7 @@ struct iscsi_pdu {
|
||||
uint32_t lun;
|
||||
uint32_t itt;
|
||||
uint32_t cmdsn;
|
||||
uint32_t datasn;
|
||||
enum iscsi_opcode response_opcode;
|
||||
|
||||
iscsi_command_cb callback;
|
||||
|
||||
@@ -120,7 +120,7 @@ iscsi_send_data_out(struct iscsi_context *iscsi, struct iscsi_pdu *cmd_pdu,
|
||||
iscsi_pdu_set_expstatsn(pdu, iscsi->statsn+1);
|
||||
|
||||
/* data sn */
|
||||
iscsi_pdu_set_datasn(pdu, 0);
|
||||
iscsi_pdu_set_datasn(pdu, cmd_pdu->datasn++);
|
||||
|
||||
/* buffer offset */
|
||||
iscsi_pdu_set_bufferoffset(pdu, offset);
|
||||
|
||||
Reference in New Issue
Block a user