From: Neil Brown <neilb@suse.de>
To: "Labun, Marcin" <Marcin.Labun@intel.com>
Cc: "linux-raid@vger.kernel.org" <linux-raid@vger.kernel.org>,
"Neubauer, Wojciech" <Wojciech.Neubauer@intel.com>,
"Williams, Dan J" <dan.j.williams@intel.com>,
"Czarnowska, Anna" <anna.czarnowska@intel.com>,
"Ciechanowski, Ed" <ed.ciechanowski@intel.com>,
"Hawrylewicz Czarnowski,
Przemyslaw" <przemyslaw.hawrylewicz.czarnowski@intel.com>
Subject: Re: [PATCH 2/2] IMSM: do not rebuild the array if a non-redundant sub-array with failed disks is present
Date: Wed, 8 Dec 2010 13:32:08 +1100 [thread overview]
Message-ID: <20101208133208.0f62b900@notabene.brown> (raw)
In-Reply-To: <905EDD02F158D948B186911EB64DB3D17676E3C3@irsmsx503.ger.corp.intel.com>
On Tue, 7 Dec 2010 16:10:48 +0000 "Labun, Marcin" <Marcin.Labun@intel.com>
wrote:
> >From ee52735e3576dc998a837229ac5b9fb3ed1faeaf Mon Sep 17 00:00:00 2001
> From: Marcin Labun <marcin.labun@intel.com>
> Date: Wed, 30 Nov 2010 15:47:19 +0100
> Subject: [PATCH 2/2] IMSM: do not rebuild the array if a non-redundant sub-array with failed disks is present
>
> Now Intel metadata handler rebuilds all sub-arrays even if one of them
> is non-redundant. In case of failed sub-array, failed disks are just replaced
> with new ones in the metadata mapping. The data for failed disk is not restored
> even the disk is present in the system. This fix requests to remove the failed
> disk from container to let the process of rebuilding the array with failed
> member. If the disk is physically pulled out of the system, the disk is removed
> from container automatically by exiting udev rules.
This mostly makes sense, though...
>
> + /*
> + * If there are any failed disks check state of the other volume.
> + * Block rebuild if the other one is failed until failed disks
> + * are removed from container.
> + */
This comment was a lot clearer to me that the description at the top :-)
However:
> + if (failed) {
> + dprintf("found failed disks in %s, check if there is another"
> + "sub-array\n",
> + dev->volume);
> + /* check the state of the other volume allows for rebuild */
> + allowed = imsm_rebuild_allowed(a, (inst == 0) ? 1 : 0, failed);
^^^^^^^^^^^^^^^^^^
This seems to imply that there are only ever at most 2 volumes in a
container. Is that really true? The rest of the code seems to assume that
there could be several.
If there can be more than two, then you need a loop over all the 'other'
devices to check that they are allowed to rebuild.
Thanks,
NeilBrown
next prev parent reply other threads:[~2010-12-08 2:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-07 16:10 [PATCH 2/2] IMSM: do not rebuild the array if a non-redundant sub-array with failed disks is present Labun, Marcin
2010-12-08 2:32 ` Neil Brown [this message]
2010-12-08 14:48 ` Labun, Marcin
2010-12-08 14:59 ` Labun, Marcin
2010-12-08 17:48 ` Dan Williams
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=20101208133208.0f62b900@notabene.brown \
--to=neilb@suse.de \
--cc=Marcin.Labun@intel.com \
--cc=Wojciech.Neubauer@intel.com \
--cc=anna.czarnowska@intel.com \
--cc=dan.j.williams@intel.com \
--cc=ed.ciechanowski@intel.com \
--cc=linux-raid@vger.kernel.org \
--cc=przemyslaw.hawrylewicz.czarnowski@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).