From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
To: Martins Krikis <mkrikis@yahoo.com>
Cc: linux-kernel@vger.kernel.org, arjanv@redhat.com
Subject: Re: [RFC][PATCH] ataraid_end_request hides errors (all? 2.4 kernels)
Date: Sun, 25 Jul 2004 19:38:35 -0300 [thread overview]
Message-ID: <20040725223835.GA2170@dmt.cyclades> (raw)
In-Reply-To: <20040714041147.87993.qmail@web13708.mail.yahoo.com>
Hi Martins,
On Tue, Jul 13, 2004 at 09:11:47PM -0700, Martins Krikis wrote:
> I know that interest in 2.4 kernels and ataraid at this point
> is probably minimal, and I myself don't use ataraid_end_request.
>
> However, I would appreciate if somebody could tell me whether a
> patch like the one attached is acceptable or whether the use of
> the BH_PrivateStart flag (style issues aside) can introduce any
> new problems. In particular, I've noticed that ext3 and xfs also
> use this flag.
>
> The bug that the patch attempts to solve is the following.
> Ataraid_end_request() uses the success/failure of the last
> one of component I/Os as the success/failure of the complete
> I/O (to a RAID volume). Thus, even if all the first components
> fail, as long as the last one succeeds, it will report the
> complete I/O as a success, and the user will not even get
> an indication of any errors. The code is used by all ataraid
> subdrivers except iswraid, as far as I know.
Right, ataraid uses the status ("uptodate") of the last component of
an IO to inform the real buffer_head IO status, and that is quite bad.
The correct thing seems to pass IO error ("!uptodate") to the upper
->b_end_io callback only in case both components of an IO operation have
failed. As long as at least one of the mirrors have successfully
finished the IO, we should continue operation, providing reliability,
AFAICS.
About error reporting, indeed the current scheme is very bad and doesnt
correctly report errors. We should at least print some warning on
ataraid_end_request() informing of IO errors.
ataraid seems to have been designed with poor IO error handling from
the beginning.
Arjan, could you please comment on this?
> If using the BH_PrivateStart is not appropriate in this module,
> a different free bit from b_state can be chosen. Protection
> against component-I/O failure can also be achieved by introducing
> a new field in ataraid_bh_private. Ideally the subdrivers would
> also clear the flag/field, although for a truly unused flag
> in b_state this can be skipped, so a flag-based solution can
> be both quicker and need no extra space, I think.
>
> Anyway, I'm very interested to hear whether anybody cares
> and whether it is OK to use BH_PrivateStart in block device
> drivers.
Its not OK to mess with BH_PrivateStart, no, jbd/xfs use it
for their own purposes.
Anyway, thanks for the bug report.
next prev parent reply other threads:[~2004-07-26 20:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-14 4:11 [RFC][PATCH] ataraid_end_request hides errors (all? 2.4 kernels) Martins Krikis
2004-07-25 22:38 ` Marcelo Tosatti [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-07-26 23:36 Martins Krikis
2004-07-26 23:57 ` Marcelo Tosatti
2004-07-27 5:15 ` Martins Krikis
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=20040725223835.GA2170@dmt.cyclades \
--to=marcelo.tosatti@cyclades.com \
--cc=arjanv@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mkrikis@yahoo.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.