[dm-devel] Re: [PATCH RFC] replace dm hw handlers with scsi handlers
Mike Christie
michaelc at cs.wisc.edu
Thu Oct 12 20:21:15 UTC 2006
Mike Christie wrote:
> +
> +static int clariion_check_sense(struct scsi_sense_hdr *sense_hdr)
> +{
> + switch (sense_hdr->sense_key) {
> + case NOT_READY:
> + if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x03)
> + /*
> + * LUN Not Ready - Manual Intervention Required
> + * indicates this is a passive path.
> + *
> + * FIXME: However, if this is seen and EVPD C0
> + * indicates that this is due to a NDU in
> + * progress, we should set FAIL_PATH too.
> + * This indicates we might have to do a SCSI
> + * inquiry in the end_io path. Ugh.
> + */
> + return FAILED;
> + break;
> + case ILLEGAL_REQUEST:
> + if (sense_hdr->asc == 0x25 && sense_hdr->ascq == 0x01)
> + /*
> + * An array based copy is in progress. Do not
> + * fail the path, do not bypass to another PG,
> + * do not retry. Fail the IO immediately.
> + * (Actually this is the same conclusion as in
> + * the default handler, but lets make sure.)
> + */
> + return FAILED;
> + break;
> + case UNIT_ATTENTION:
> + if (sense_hdr->asc == 0x29 && sense_hdr->ascq == 0x00)
> + /*
> + * Unit Attention Code. This is the first IO
> + * to the new path, so just retry.
> + */
> + return NEEDS_RETRY;
> + break;
> + }
> +
> + /* success just means we do not care what scsi-ml does */
> + return SUCCESS;
> +}
> +
Oh yeah, Ed could you tell me where sometimes a commend gets retried
over and over when a path is passive and can you tell me on what error
values it does this so I can add this in? Does the check_sense code
force the retry, or scsi_io_completion or the ULD?
More information about the dm-devel
mailing list