Skip to content

Commit

Permalink
iscsi-target: Convert incoming PDU payload checks to MaxXmitDataSegme…
Browse files Browse the repository at this point in the history
…ntLength

Now that iscsi-target supports a local configurable MaxXmitDataSegmentLength,
go ahead and make ISCSI_OP_SCSI_CMD, ISCSI_OP_SCSI_DATA_OUT, ISCSI_OP_NOOP_OUT
and ISCSI_OP_TEXT PDU payload checks honor conn_ops->MaxXmitDataSegmentLength.

Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: Andy Grover <agrover@redhat.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
  • Loading branch information
Nicholas Bellinger committed Oct 2, 2012
1 parent 9977bb1 commit 21f5aa7
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions drivers/target/iscsi/iscsi_target.c
Original file line number Diff line number Diff line change
Expand Up @@ -869,10 +869,10 @@ static int iscsit_handle_scsi_cmd(
buf, conn);
}

if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) {
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
pr_err("DataSegmentLength: %u is greater than"
" MaxRecvDataSegmentLength: %u, protocol error.\n",
payload_length, conn->conn_ops->MaxRecvDataSegmentLength);
" MaxXmitDataSegmentLength: %u, protocol error.\n",
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
buf, conn);
}
Expand Down Expand Up @@ -1216,10 +1216,10 @@ static int iscsit_handle_data_out(struct iscsi_conn *conn, unsigned char *buf)
}
spin_unlock_bh(&conn->sess->session_stats_lock);

if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) {
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
pr_err("DataSegmentLength: %u is greater than"
" MaxRecvDataSegmentLength: %u\n", payload_length,
conn->conn_ops->MaxRecvDataSegmentLength);
" MaxXmitDataSegmentLength: %u\n", payload_length,
conn->conn_ops->MaxXmitDataSegmentLength);
return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
buf, conn);
}
Expand Down Expand Up @@ -1437,11 +1437,11 @@ static int iscsit_handle_nop_out(
buf, conn);
}

if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) {
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
pr_err("NOPOUT Ping Data DataSegmentLength: %u is"
" greater than MaxRecvDataSegmentLength: %u, protocol"
" greater than MaxXmitDataSegmentLength: %u, protocol"
" error.\n", payload_length,
conn->conn_ops->MaxRecvDataSegmentLength);
conn->conn_ops->MaxXmitDataSegmentLength);
return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
buf, conn);
}
Expand Down Expand Up @@ -1874,10 +1874,10 @@ static int iscsit_handle_text_cmd(
hdr->cmdsn = be32_to_cpu(hdr->cmdsn);
hdr->exp_statsn = be32_to_cpu(hdr->exp_statsn);

if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) {
if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
pr_err("Unable to accept text parameter length: %u"
"greater than MaxRecvDataSegmentLength %u.\n",
payload_length, conn->conn_ops->MaxRecvDataSegmentLength);
"greater than MaxXmitDataSegmentLength %u.\n",
payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
buf, conn);
}
Expand Down

0 comments on commit 21f5aa7

Please sign in to comment.