aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2012-09-30 00:51:26 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2012-10-02 16:17:32 -0400
commit21f5aa7eb8572b5cfe36884c23d306c72fe3987c (patch)
tree086e4ca875ef4b24662f36a7ed5dcac071d1dc77 /drivers/target/iscsi
parent9977bb18c92e694819266fc0e7c5a3cd0cd7b626 (diff)
iscsi-target: Convert incoming PDU payload checks to MaxXmitDataSegmentLength
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>
Diffstat (limited to 'drivers/target/iscsi')
-rw-r--r--drivers/target/iscsi/iscsi_target.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 30842e195996..632a5aeb14d9 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -869,10 +869,10 @@ done:
869 buf, conn); 869 buf, conn);
870 } 870 }
871 871
872 if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) { 872 if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
873 pr_err("DataSegmentLength: %u is greater than" 873 pr_err("DataSegmentLength: %u is greater than"
874 " MaxRecvDataSegmentLength: %u, protocol error.\n", 874 " MaxXmitDataSegmentLength: %u, protocol error.\n",
875 payload_length, conn->conn_ops->MaxRecvDataSegmentLength); 875 payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
876 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1, 876 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
877 buf, conn); 877 buf, conn);
878 } 878 }
@@ -1216,10 +1216,10 @@ static int iscsit_handle_data_out(struct iscsi_conn *conn, unsigned char *buf)
1216 } 1216 }
1217 spin_unlock_bh(&conn->sess->session_stats_lock); 1217 spin_unlock_bh(&conn->sess->session_stats_lock);
1218 1218
1219 if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) { 1219 if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
1220 pr_err("DataSegmentLength: %u is greater than" 1220 pr_err("DataSegmentLength: %u is greater than"
1221 " MaxRecvDataSegmentLength: %u\n", payload_length, 1221 " MaxXmitDataSegmentLength: %u\n", payload_length,
1222 conn->conn_ops->MaxRecvDataSegmentLength); 1222 conn->conn_ops->MaxXmitDataSegmentLength);
1223 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1, 1223 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
1224 buf, conn); 1224 buf, conn);
1225 } 1225 }
@@ -1437,11 +1437,11 @@ static int iscsit_handle_nop_out(
1437 buf, conn); 1437 buf, conn);
1438 } 1438 }
1439 1439
1440 if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) { 1440 if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
1441 pr_err("NOPOUT Ping Data DataSegmentLength: %u is" 1441 pr_err("NOPOUT Ping Data DataSegmentLength: %u is"
1442 " greater than MaxRecvDataSegmentLength: %u, protocol" 1442 " greater than MaxXmitDataSegmentLength: %u, protocol"
1443 " error.\n", payload_length, 1443 " error.\n", payload_length,
1444 conn->conn_ops->MaxRecvDataSegmentLength); 1444 conn->conn_ops->MaxXmitDataSegmentLength);
1445 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1, 1445 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
1446 buf, conn); 1446 buf, conn);
1447 } 1447 }
@@ -1874,10 +1874,10 @@ static int iscsit_handle_text_cmd(
1874 hdr->cmdsn = be32_to_cpu(hdr->cmdsn); 1874 hdr->cmdsn = be32_to_cpu(hdr->cmdsn);
1875 hdr->exp_statsn = be32_to_cpu(hdr->exp_statsn); 1875 hdr->exp_statsn = be32_to_cpu(hdr->exp_statsn);
1876 1876
1877 if (payload_length > conn->conn_ops->MaxRecvDataSegmentLength) { 1877 if (payload_length > conn->conn_ops->MaxXmitDataSegmentLength) {
1878 pr_err("Unable to accept text parameter length: %u" 1878 pr_err("Unable to accept text parameter length: %u"
1879 "greater than MaxRecvDataSegmentLength %u.\n", 1879 "greater than MaxXmitDataSegmentLength %u.\n",
1880 payload_length, conn->conn_ops->MaxRecvDataSegmentLength); 1880 payload_length, conn->conn_ops->MaxXmitDataSegmentLength);
1881 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1, 1881 return iscsit_add_reject(ISCSI_REASON_PROTOCOL_ERROR, 1,
1882 buf, conn); 1882 buf, conn);
1883 } 1883 }