Commit 388fe699 authored by Tang Wenji's avatar Tang Wenji Committed by Nicholas Bellinger

target: Fix cmd size for PR-OUT in passthrough_parse_cdb

The cmd size should be 4bytes form byte5 to byte8 when CDB opcode
is PERSISTENT_RESERVE_OUT in SPC3 and SPC4

(Also fix up the same in spc_parse_cdb - MNC)
Signed-off-by: default avatarTang Wenji <tang.wenji@zte.com.cn>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent de8c5221
...@@ -1183,7 +1183,7 @@ passthrough_parse_cdb(struct se_cmd *cmd, ...@@ -1183,7 +1183,7 @@ passthrough_parse_cdb(struct se_cmd *cmd,
} }
if (cdb[0] == PERSISTENT_RESERVE_OUT) { if (cdb[0] == PERSISTENT_RESERVE_OUT) {
cmd->execute_cmd = target_scsi3_emulate_pr_out; cmd->execute_cmd = target_scsi3_emulate_pr_out;
size = get_unaligned_be16(&cdb[7]); size = get_unaligned_be32(&cdb[5]);
return target_cmd_size_check(cmd, size); return target_cmd_size_check(cmd, size);
} }
......
...@@ -1307,7 +1307,7 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size) ...@@ -1307,7 +1307,7 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size)
cmd->execute_cmd = target_scsi3_emulate_pr_in; cmd->execute_cmd = target_scsi3_emulate_pr_in;
break; break;
case PERSISTENT_RESERVE_OUT: case PERSISTENT_RESERVE_OUT:
*size = get_unaligned_be16(&cdb[7]); *size = get_unaligned_be32(&cdb[5]);
cmd->execute_cmd = target_scsi3_emulate_pr_out; cmd->execute_cmd = target_scsi3_emulate_pr_out;
break; break;
case RELEASE: case RELEASE:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment