* [PATCH] dm: Integrity errors should not cause failover
@ 2011-05-18 4:49 Martin K. Petersen
2011-05-18 12:11 ` Mike Snitzer
0 siblings, 1 reply; 5+ messages in thread
From: Martin K. Petersen @ 2011-05-18 4:49 UTC (permalink / raw)
To: device-mapper development; +Cc: Alasdair G. Kergon, Mike Snitzer
Integrity errors need to be passed to the owner of the integrity
metadata for processing. Consequently EILSEQ should be passed up the
stack.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: Mike Snitzer <snitzer@redhat.com>
---
Ping on this one?
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index a550a05..aa4e570 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
if (!error && !clone->errors)
return 0; /* I/O complete */
- if (error == -EOPNOTSUPP || error == -EREMOTEIO)
+ if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
return error;
if (mpio->pgpath)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: dm: Integrity errors should not cause failover
2011-05-18 4:49 [PATCH] dm: Integrity errors should not cause failover Martin K. Petersen
@ 2011-05-18 12:11 ` Mike Snitzer
2011-05-23 18:17 ` Mike Snitzer
0 siblings, 1 reply; 5+ messages in thread
From: Mike Snitzer @ 2011-05-18 12:11 UTC (permalink / raw)
To: Martin K. Petersen; +Cc: device-mapper development, Alasdair G. Kergon
On Wed, May 18 2011 at 12:49am -0400,
Martin K. Petersen <martin.petersen@oracle.com> wrote:
>
> Integrity errors need to be passed to the owner of the integrity
> metadata for processing. Consequently EILSEQ should be passed up the
> stack.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> Acked-by: Mike Snitzer <snitzer@redhat.com>
>
> ---
>
> Ping on this one?
It has been on my personal queue but I didn't push the issue with
Alasdair (for 2.6.39).
At this point seems we should be targetting this fix for 2.6.40 but I'll
defer to Alasdair on whether he'd like to push to .39 last minute.
> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index a550a05..aa4e570 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
> if (!error && !clone->errors)
> return 0; /* I/O complete */
>
> - if (error == -EOPNOTSUPP || error == -EREMOTEIO)
> + if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
> return error;
>
> if (mpio->pgpath)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: dm: Integrity errors should not cause failover
2011-05-18 12:11 ` Mike Snitzer
@ 2011-05-23 18:17 ` Mike Snitzer
2011-05-25 15:04 ` Martin K. Petersen
0 siblings, 1 reply; 5+ messages in thread
From: Mike Snitzer @ 2011-05-23 18:17 UTC (permalink / raw)
To: Martin K. Petersen
Cc: device-mapper development, Alasdair G. Kergon, linux-scsi
On Wed, May 18 2011 at 8:11am -0400,
Mike Snitzer <snitzer@redhat.com> wrote:
> On Wed, May 18 2011 at 12:49am -0400,
> Martin K. Petersen <martin.petersen@oracle.com> wrote:
>
> >
> > Integrity errors need to be passed to the owner of the integrity
> > metadata for processing. Consequently EILSEQ should be passed up the
> > stack.
> >
> > Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> > Acked-by: Mike Snitzer <snitzer@redhat.com>
> >
> > ---
> >
> > Ping on this one?
>
> It has been on my personal queue but I didn't push the issue with
> Alasdair (for 2.6.39).
>
> At this point seems we should be targetting this fix for 2.6.40 but I'll
> defer to Alasdair on whether he'd like to push to .39 last minute.
Hi Martin,
Alasdair and I just chatted about this patch: it will always pass the
the -EILSEQ up _without_ performing any mpath path failure.
The newfound concern is: is there ever a benefit to failing the path
before returning -EILSEQ?
Or will -EILSEQ always imply there is nothing wrong with the path?
E.g. a transport error cannot cause a CRC error -- the transport
error is always trapped by SCSI and cannot result in continued
processing of an IO (that goes on to have CRC error)?
Thanks,
Mike
>
> > diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> > index a550a05..aa4e570 100644
> > --- a/drivers/md/dm-mpath.c
> > +++ b/drivers/md/dm-mpath.c
> > @@ -1290,7 +1290,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
> > if (!error && !clone->errors)
> > return 0; /* I/O complete */
> >
> > - if (error == -EOPNOTSUPP || error == -EREMOTEIO)
> > + if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ)
> > return error;
> >
> > if (mpio->pgpath)
>
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: dm: Integrity errors should not cause failover
2011-05-23 18:17 ` Mike Snitzer
@ 2011-05-25 15:04 ` Martin K. Petersen
0 siblings, 0 replies; 5+ messages in thread
From: Martin K. Petersen @ 2011-05-25 15:04 UTC (permalink / raw)
To: Mike Snitzer
Cc: Martin K. Petersen, device-mapper development, Alasdair G. Kergon,
linux-scsi
>>>>> "Mike" == Mike Snitzer <snitzer@redhat.com> writes:
Mike,
Mike> Alasdair and I just chatted about this patch: it will always pass
Mike> the the -EILSEQ up _without_ performing any mpath path failure.
Correct.
Mike> The newfound concern is: is there ever a benefit to failing the
Mike> path before returning -EILSEQ?
No, never.
Mike> Or will -EILSEQ always imply there is nothing wrong with the path?
Mike> E.g. a transport error cannot cause a CRC error -- the transport
Mike> error is always trapped by SCSI and cannot result in continued
Mike> processing of an IO (that goes on to have CRC error)?
-EILSEQ is only returned if a discrepancy is detected between data and
protection information. In both cases the block in question was
successfully received by either initiator or target. I.e. the path is
working fine.
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] dm: Integrity errors should not cause failover
@ 2011-03-08 6:54 Martin K. Petersen
0 siblings, 0 replies; 5+ messages in thread
From: Martin K. Petersen @ 2011-03-08 6:54 UTC (permalink / raw)
To: dm-devel
Integrity errors need to be passed to the owner of the integrity
metadata for processing. Consequently EILSEQ should be passed up the
stack.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
---
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index f336c69..57f7dd3 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1215,7 +1215,7 @@ static int do_end_io(struct multipath *m, struct request *clone,
if (!error && !clone->errors)
return 0; /* I/O complete */
- if (error == -EOPNOTSUPP)
+ if (error == -EOPNOTSUPP || error == -EILSEQ)
return error;
if (mpio->pgpath)
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-05-25 15:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-18 4:49 [PATCH] dm: Integrity errors should not cause failover Martin K. Petersen
2011-05-18 12:11 ` Mike Snitzer
2011-05-23 18:17 ` Mike Snitzer
2011-05-25 15:04 ` Martin K. Petersen
-- strict thread matches above, loose matches on Subject: below --
2011-03-08 6:54 [PATCH] " Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox