diff options
author | David Disseldorp <ddiss@suse.de> | 2016-12-23 05:37:53 -0500 |
---|---|---|
committer | Bart Van Assche <bart.vanassche@sandisk.com> | 2017-01-10 11:40:32 -0500 |
commit | e864212078ded276bdb272b2e0ee6a979357ca8a (patch) | |
tree | d2129eb1023d4d95f030dc74257da09015d03c70 /drivers/target | |
parent | 7ce7d89f48834cefece7804d38fc5d85382edf77 (diff) |
target: add XCOPY target/segment desc sense codes
As defined in http://www.t10.org/lists/asc-num.htm. To be used during
validation of XCOPY target and segment descriptor lists.
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>
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/target_core_transport.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 7dfefd66df93..1cadc9eefa21 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c | |||
@@ -1693,6 +1693,10 @@ void transport_generic_request_failure(struct se_cmd *cmd, | |||
1693 | case TCM_LOGICAL_BLOCK_APP_TAG_CHECK_FAILED: | 1693 | case TCM_LOGICAL_BLOCK_APP_TAG_CHECK_FAILED: |
1694 | case TCM_LOGICAL_BLOCK_REF_TAG_CHECK_FAILED: | 1694 | case TCM_LOGICAL_BLOCK_REF_TAG_CHECK_FAILED: |
1695 | case TCM_COPY_TARGET_DEVICE_NOT_REACHABLE: | 1695 | case TCM_COPY_TARGET_DEVICE_NOT_REACHABLE: |
1696 | case TCM_TOO_MANY_TARGET_DESCS: | ||
1697 | case TCM_UNSUPPORTED_TARGET_DESC_TYPE_CODE: | ||
1698 | case TCM_TOO_MANY_SEGMENT_DESCS: | ||
1699 | case TCM_UNSUPPORTED_SEGMENT_DESC_TYPE_CODE: | ||
1696 | break; | 1700 | break; |
1697 | case TCM_OUT_OF_RESOURCES: | 1701 | case TCM_OUT_OF_RESOURCES: |
1698 | sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; | 1702 | sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; |
@@ -2808,6 +2812,26 @@ static const struct sense_info sense_info_table[] = { | |||
2808 | .key = ILLEGAL_REQUEST, | 2812 | .key = ILLEGAL_REQUEST, |
2809 | .asc = 0x26, /* INVALID FIELD IN PARAMETER LIST */ | 2813 | .asc = 0x26, /* INVALID FIELD IN PARAMETER LIST */ |
2810 | }, | 2814 | }, |
2815 | [TCM_TOO_MANY_TARGET_DESCS] = { | ||
2816 | .key = ILLEGAL_REQUEST, | ||
2817 | .asc = 0x26, | ||
2818 | .ascq = 0x06, /* TOO MANY TARGET DESCRIPTORS */ | ||
2819 | }, | ||
2820 | [TCM_UNSUPPORTED_TARGET_DESC_TYPE_CODE] = { | ||
2821 | .key = ILLEGAL_REQUEST, | ||
2822 | .asc = 0x26, | ||
2823 | .ascq = 0x07, /* UNSUPPORTED TARGET DESCRIPTOR TYPE CODE */ | ||
2824 | }, | ||
2825 | [TCM_TOO_MANY_SEGMENT_DESCS] = { | ||
2826 | .key = ILLEGAL_REQUEST, | ||
2827 | .asc = 0x26, | ||
2828 | .ascq = 0x08, /* TOO MANY SEGMENT DESCRIPTORS */ | ||
2829 | }, | ||
2830 | [TCM_UNSUPPORTED_SEGMENT_DESC_TYPE_CODE] = { | ||
2831 | .key = ILLEGAL_REQUEST, | ||
2832 | .asc = 0x26, | ||
2833 | .ascq = 0x09, /* UNSUPPORTED SEGMENT DESCRIPTOR TYPE CODE */ | ||
2834 | }, | ||
2811 | [TCM_PARAMETER_LIST_LENGTH_ERROR] = { | 2835 | [TCM_PARAMETER_LIST_LENGTH_ERROR] = { |
2812 | .key = ILLEGAL_REQUEST, | 2836 | .key = ILLEGAL_REQUEST, |
2813 | .asc = 0x1a, /* PARAMETER LIST LENGTH ERROR */ | 2837 | .asc = 0x1a, /* PARAMETER LIST LENGTH ERROR */ |