mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
[SCSI] iscsi: Some fixes in preparation for bidirectional support - exp_datasn
This patch fixes handling of expected datasn/r2tsn as received from target. It is done according to: T10 rfc3720 section 3.2.2.3. Data Sequencing. . unify expected datasn/r2tsn into one counter . calculate than check expected datasn/r2tsn. On error print a message and fail the request. (TODO use iscsi retransmits) . remove the FIXME ;) . avoid zero length memset Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
8ad5781ae9
commit
d473cc7f15
4 changed files with 15 additions and 11 deletions
|
@ -120,7 +120,9 @@ static void iscsi_prep_scsi_cmd_pdu(struct iscsi_cmd_task *ctask)
|
|||
session->cmdsn++;
|
||||
hdr->exp_statsn = cpu_to_be32(conn->exp_statsn);
|
||||
memcpy(hdr->cdb, sc->cmnd, sc->cmd_len);
|
||||
memset(&hdr->cdb[sc->cmd_len], 0, MAX_COMMAND_SIZE - sc->cmd_len);
|
||||
if (sc->cmd_len < MAX_COMMAND_SIZE)
|
||||
memset(&hdr->cdb[sc->cmd_len], 0,
|
||||
MAX_COMMAND_SIZE - sc->cmd_len);
|
||||
|
||||
ctask->data_count = 0;
|
||||
if (sc->sc_data_direction == DMA_TO_DEVICE) {
|
||||
|
@ -165,7 +167,6 @@ static void iscsi_prep_scsi_cmd_pdu(struct iscsi_cmd_task *ctask)
|
|||
/* No unsolicit Data-Out's */
|
||||
ctask->hdr->flags |= ISCSI_FLAG_CMD_FINAL;
|
||||
} else {
|
||||
ctask->datasn = 0;
|
||||
hdr->flags |= ISCSI_FLAG_CMD_FINAL;
|
||||
zero_data(hdr->dlength);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue