mirror of https://gitee.com/openkylin/linux.git
target: return UNSUPPORTED TARGET/SEGMENT DESC TYPE CODE sense
Use UNSUPPORTED TARGET DESCRIPTOR TYPE CODE and UNSUPPORTED SEGMENT DESCRIPTOR TYPE CODE additional sense codes if a descriptor type in an XCOPY request is not supported, as specified in spc4r37 6.4.5 and 6.4.6. Signed-off-by: David Disseldorp <ddiss@suse.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
This commit is contained in:
parent
7d38706669
commit
c243849720
|
@ -199,6 +199,7 @@ static int target_xcopy_parse_target_descriptors(struct se_cmd *se_cmd,
|
|||
if (offset != 0) {
|
||||
pr_err("XCOPY target descriptor list length is not"
|
||||
" multiple of %d\n", XCOPY_TARGET_DESC_LEN);
|
||||
*sense_ret = TCM_UNSUPPORTED_TARGET_DESC_TYPE_CODE;
|
||||
return -EINVAL;
|
||||
}
|
||||
if (tdll > RCR_OP_MAX_TARGET_DESC_COUNT * XCOPY_TARGET_DESC_LEN) {
|
||||
|
@ -240,6 +241,7 @@ static int target_xcopy_parse_target_descriptors(struct se_cmd *se_cmd,
|
|||
default:
|
||||
pr_err("XCOPY unsupported descriptor type code:"
|
||||
" 0x%02x\n", desc[0]);
|
||||
*sense_ret = TCM_UNSUPPORTED_TARGET_DESC_TYPE_CODE;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
@ -319,6 +321,7 @@ static int target_xcopy_parse_segment_descriptors(struct se_cmd *se_cmd,
|
|||
if (offset != 0) {
|
||||
pr_err("XCOPY segment descriptor list length is not"
|
||||
" multiple of %d\n", XCOPY_SEGMENT_DESC_LEN);
|
||||
*sense_ret = TCM_UNSUPPORTED_SEGMENT_DESC_TYPE_CODE;
|
||||
return -EINVAL;
|
||||
}
|
||||
if (sdll > RCR_OP_MAX_SG_DESC_COUNT * XCOPY_SEGMENT_DESC_LEN) {
|
||||
|
@ -346,6 +349,7 @@ static int target_xcopy_parse_segment_descriptors(struct se_cmd *se_cmd,
|
|||
default:
|
||||
pr_err("XCOPY unsupported segment descriptor"
|
||||
"type: 0x%02x\n", desc[0]);
|
||||
*sense_ret = TCM_UNSUPPORTED_SEGMENT_DESC_TYPE_CODE;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue