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:
Родитель
9977bb18c9
Коммит
21f5aa7eb8
|
@ -869,10 +869,10 @@ done:
|
|||
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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче