[dm-devel] rq-based mpath failed path on SCSI target failure (malformed discard)

Mike Christie michaelc at cs.wisc.edu
Mon Jul 26 16:23:25 UTC 2010


On 07/26/2010 10:00 AM, Mike Snitzer wrote:
>
> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index ec2b43e..125c80f 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -1272,6 +1272,9 @@ static int do_end_io(struct multipath *m, struct request *clone,
>   	if (error == -EOPNOTSUPP)
>   		return error;
>
> +	if (clone->cmd_flags&  REQ_DISCARD)
> +		return error;   /* pass all discard request failures up */
> +


If a discard where failed due to a transport problem then you are going 
to fail the IO instead of just retrying on another path.

You need something like Hannes's work to pass up the sense, or something 
like generic block error codes like I started to work on, so you know 
why the IO failed.




More information about the dm-devel mailing list