[dm-devel] Re: [PATCH]scsi_dh_rdac: Retry for NOT_READY check condition (0x02A102, 0x020401, 0x020404 and 0x020407) in rdac_check_sense

James Bottomley James.Bottomley at HansenPartnership.com
Tue Mar 10 15:46:31 UTC 2009


On Tue, 2009-03-10 at 18:30 +0530, Chauhan, Vijay wrote:
> This patch adds retry for NOT_READY check conditions(02/A1/02, 02/04/01, 02/04/04,
> 02/04/07) in rdac_check_sense.
> 
> Signed-off-by: Vijay Chauhan<vijay.chauhan at lsi.com>
> 
> ---
> --- linux-2.6.29-rc7/drivers/scsi/device_handler/scsi_dh_rdac.c.orig	2009-03-10 17:42:27.000000000 +0530
> +++ linux-2.6.29-rc7/drivers/scsi/device_handler/scsi_dh_rdac.c	2009-03-10 18:05:35.000000000 +0530
> @@ -562,6 +562,30 @@ static int rdac_check_sense(struct scsi_
>  			 * Just retry and wait.
>  			 */
>  			return ADD_TO_MLQUEUE;
> +		if (sense_hdr->asc == 0xA1  && sense_hdr->ascq == 0x02)
> +			/* LUN Not Ready - Quiescense in progress
> +			 * or has been achieved
> +			 * Just retry.
> +			 */
> +			return ADD_TO_MLQUEUE;

This is fine, being vendor specific, we don't handle it at the mid-layer

> +		if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x01)
> +			/* LUN Not Ready - Logical Unit Not Ready and is in
> +			 * the process of becoming ready
> +			 * Just retry.
> +			 */
> +			return ADD_TO_MLQUEUE;
> +		if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x04)
> +			/* LUN Not Ready - Format In Progress
> +			 *
> +			 * Just retry.
> +			 */
> +			return ADD_TO_MLQUEUE;
> +		if (sense_hdr->asc == 0x04  && sense_hdr->ascq == 0x07)
> +			/* LUN Not Ready - Storage controller cannot respond
> +			 * immediately to a PRIN or PROUT command.
> +			 * Just retry.
> +			 */
> +			return ADD_TO_MLQUEUE;

For all of these ... along with a few other not ready types, we already
do a delayed retry at the mid-layer (in scsi_io_completion).  Is there
some problem that causes this to need to be handled here as well?

James





More information about the dm-devel mailing list