diff options
-rw-r--r-- | drivers/target/target_core_transport.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 3243ea790eab..493e9e589059 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c | |||
@@ -2765,8 +2765,13 @@ transport_send_check_condition_and_sense(struct se_cmd *cmd, | |||
2765 | /* CURRENT ERROR */ | 2765 | /* CURRENT ERROR */ |
2766 | buffer[0] = 0x70; | 2766 | buffer[0] = 0x70; |
2767 | buffer[SPC_ADD_SENSE_LEN_OFFSET] = 10; | 2767 | buffer[SPC_ADD_SENSE_LEN_OFFSET] = 10; |
2768 | /* ILLEGAL REQUEST */ | 2768 | /* |
2769 | buffer[SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; | 2769 | * Returning ILLEGAL REQUEST would cause immediate IO errors on |
2770 | * Solaris initiators. Returning NOT READY instead means the | ||
2771 | * operations will be retried a finite number of times and we | ||
2772 | * can survive intermittent errors. | ||
2773 | */ | ||
2774 | buffer[SPC_SENSE_KEY_OFFSET] = NOT_READY; | ||
2770 | /* LOGICAL UNIT COMMUNICATION FAILURE */ | 2775 | /* LOGICAL UNIT COMMUNICATION FAILURE */ |
2771 | buffer[SPC_ASC_KEY_OFFSET] = 0x08; | 2776 | buffer[SPC_ASC_KEY_OFFSET] = 0x08; |
2772 | break; | 2777 | break; |