From: Jens Axboe <jens.axboe@oracle.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: linux-scsi <linux-scsi@vger.kernel.org>, mtosatti@redhat.com
Subject: Re: [RFC] block: fix barrier error transmission
Date: Fri, 4 Apr 2008 13:46:11 +0200 [thread overview]
Message-ID: <20080404114611.GH29686@kernel.dk> (raw)
In-Reply-To: <1207231339.3048.17.camel@localhost.localdomain>
On Thu, Apr 03 2008, James Bottomley wrote:
> On Thu, 2008-04-03 at 10:06 +0200, Jens Axboe wrote:
> > On Wed, Apr 02 2008, James Bottomley wrote:
> > > On Wed, 2008-04-02 at 21:08 +0200, Jens Axboe wrote:
> > > > > diff --git a/block/blk-barrier.c b/block/blk-barrier.c
> > > > > index 55c5f1f..3a3947c 100644
> > > > > --- a/block/blk-barrier.c
> > > > > +++ b/block/blk-barrier.c
> > > > > @@ -114,18 +114,24 @@ void blk_ordered_complete_seq(struct request_queue *q, unsigned seq, int error)
> > > > >
> > > > > static void pre_flush_end_io(struct request *rq, int error)
> > > > > {
> > > > > + error = rq->errors ? -EIO : error;
> > > > > +
> > > > > elv_completed_request(rq->q, rq);
> > > > > blk_ordered_complete_seq(rq->q, QUEUE_ORDSEQ_PREFLUSH, error);
> > > > > }
> > > >
> > > > It's a bit of a hack, SCSI really should pass the error value back
> > > > instead of fiddling around with possibly perhaps finding it in ->errors.
> > > > And please don't use these ?: constructs, in this case it doesn't even
> > > > make a lot of sense and a
> > > >
> > > > if (rq->errors)
> > > > error = -EIO;
> > > >
> > > > would have been much cleaner ;-)
> > > >
> > > > So my question is why does the model not allow you to return the error
> > > > properly?
> > >
> > > I thought it was the sg_io that would be the problem, but apparently on
> > > further research, it simply discards the error as does scsi_execute_req.
> > >
> > > I suppose that's a strong enough reason to try returning an error ...
> > > I'm just a bit leery this close to a release.
> > >
> > > I think this will work ... it just really needs quite a bit of
> > > testing ...
> >
> > This looks much better, but I'm with you on the danger of applying
> > something like this so close to a release...
>
> Yes.
>
> > Now, this isn't a regression, but it also impacts barrier reliability
> > and as such it's a big nasty to leave this open for another release.
>
> Yes, I agree ... let's put it in after 2.6.25 (so into scsi-misc) but if
> no problems turn up by -rc2 say, I'll send it as a backport to stable
> 2.6.25.X. That way we don't have to wait out the entire release cycle
> for users to see the benefit.
Sounds like a good plan.
--
Jens Axboe
prev parent reply other threads:[~2008-04-04 11:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-02 18:02 [RFC] block: fix barrier error transmission James Bottomley
2008-04-02 19:08 ` Jens Axboe
2008-04-02 23:11 ` James Bottomley
2008-04-03 8:06 ` Jens Axboe
2008-04-03 14:02 ` James Bottomley
2008-04-04 11:46 ` Jens Axboe [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080404114611.GH29686@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-scsi@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.