mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 07:46:44 +07:00
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>
This commit is contained in:
parent
9977bb18c9
commit
21f5aa7eb8
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user