Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

target: Change default sense key of NOT_READY

As the comment sais, this allows Solaris initiators to survive
intermittent errors. The comment from someone reading the Solaris
sources seem to imply that multipathing would be broken without this
patch as well.

Signed-off-by: Joern Engel <joern@logfs.org>
Cc: Brian Bunker <brian@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>

authored by

Jörn Engel and committed by
Nicholas Bellinger
ad673282 0463a3fe

+7 -2
+7 -2
drivers/target/target_core_transport.c
··· 2765 2765 /* CURRENT ERROR */ 2766 2766 buffer[0] = 0x70; 2767 2767 buffer[SPC_ADD_SENSE_LEN_OFFSET] = 10; 2768 - /* ILLEGAL REQUEST */ 2769 - buffer[SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST; 2768 + /* 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 2775 /* LOGICAL UNIT COMMUNICATION FAILURE */ 2771 2776 buffer[SPC_ASC_KEY_OFFSET] = 0x08; 2772 2777 break;