From: NeilBrown <neilb@suse.de>
To: Adam Kwolek <adam.kwolek@intel.com>
Cc: linux-raid@vger.kernel.org, dan.j.williams@intel.com,
ed.ciechanowski@intel.com, wojciech.neubauer@intel.com
Subject: Re: [PATCH 08/13] FIX/WORKAROUND: added disks are not used by reshape process /md/
Date: Wed, 12 Jan 2011 15:39:18 +1100 [thread overview]
Message-ID: <20110112153918.078ce82c@notabene.brown> (raw)
In-Reply-To: <20110110112832.10776.61385.stgit@gklab-128-013.igk.intel.com>
On Mon, 10 Jan 2011 12:28:32 +0100 Adam Kwolek <adam.kwolek@intel.com> wrote:
> md runs reshape but added disk is not touched
> /proc/mdstat reports that disk is used.
>
> To fix this let md to set slot for reshape.
> It is possible that slot verification mechanism has to be added.
>
> Second possibility is to investigate problem in md.
> md/raid5 treats disks as spare with disk index == -1 during raid5 reshape_start.
> Probably rqaid5 should treat as spare disks when disk index > used disks
>
> Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
> ---
>
> Grow.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/Grow.c b/Grow.c
> index 0efa106..6b2889e 100644
> --- a/Grow.c
> +++ b/Grow.c
> @@ -1697,6 +1697,7 @@ static int reshape_array(char *container, int fd, char *devname,
> /* This is a spare that wants to
> * be part of the array.
> */
> + d->disk.raid_disk = -1;
> add_disk(fd, st, info2, d);
> }
> }
We really should fix md.
I think the following might help. I'll try testing at some stage, but if you
could let me know if it helps, that would be great.
NeilBrown
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index d223a6c..5044bab 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -5527,8 +5527,8 @@ static int raid5_start_reshape(mddev_t *mddev)
return -ENOSPC;
list_for_each_entry(rdev, &mddev->disks, same_set)
- if (rdev->raid_disk < 0 &&
- !test_bit(Faulty, &rdev->flags))
+ if ((rdev->raid_disk < 0 || rdev->raid_disk >= conf->raid_disks)
+ && !test_bit(Faulty, &rdev->flags))
spares++;
if (spares - mddev->degraded < mddev->delta_disks - conf->max_degraded)
@@ -5588,6 +5588,11 @@ static int raid5_start_reshape(mddev_t *mddev)
/* Failure here is OK */;
} else
break;
+ } else if (rdev->raid_disk >= conf->previous_raid_disks
+ && !test_bit(Faulty, &rdev->flags)) {
+ /* This is a spare that was manually added */
+ set_bit(In_sync, &rdev->flags);
+ added_devices++;
}
/* When a reshape changes the number of devices, ->degraded
next prev parent reply other threads:[~2011-01-12 4:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-10 11:27 [PATCH 00/13] OLCE for external meta Raid5/single array Adam Kwolek
2011-01-10 11:27 ` [PATCH 01/13] Manage reshape process in manage_reshape vector Adam Kwolek
2011-01-12 3:51 ` NeilBrown
2011-01-10 11:27 ` [PATCH 02/13] imsm: FIX: allow for container reshape any unset size value Adam Kwolek
2011-01-12 3:52 ` NeilBrown
2011-01-12 8:32 ` Kwolek, Adam
2011-01-12 10:43 ` NeilBrown
2011-01-10 11:27 ` [PATCH 03/13] imsm: FIX: when monitor is active post update Adam Kwolek
2011-01-12 3:56 ` NeilBrown
2011-01-10 11:27 ` [PATCH 04/13] FIX: load anchor to get all information Adam Kwolek
2011-01-12 3:58 ` NeilBrown
2011-01-10 11:28 ` [PATCH 05/13] msm: FIX: when mdadm reloads anchor not need for local modyfication Adam Kwolek
2011-01-10 11:28 ` [PATCH 06/13] imsm: FIX: update disks status in container_contents() Adam Kwolek
2011-01-12 4:14 ` NeilBrown
2011-01-10 11:28 ` [PATCH 07/13] FIX: wrong flags are passed to function Adam Kwolek
2011-01-10 11:28 ` [PATCH 08/13] FIX/WORKAROUND: added disks are not used by reshape process /md/ Adam Kwolek
2011-01-12 4:39 ` NeilBrown [this message]
2011-01-10 11:28 ` [PATCH 09/13] Finalize reshape after adding disks to array Adam Kwolek
2011-01-12 4:52 ` NeilBrown
2011-01-10 11:28 ` [PATCH 10/13] FIX: Cannot unmount array after reshape Adam Kwolek
2011-01-12 4:53 ` NeilBrown
2011-01-12 15:12 ` Kwolek, Adam
2011-01-10 11:28 ` [PATCH 11/13] FIX/WORKAROUND: Arrays cannot be opened exclusively Adam Kwolek
2011-01-10 11:29 ` [PATCH 12/13] FIX: parity disks use for redundant levels only Adam Kwolek
2011-01-12 4:59 ` NeilBrown
2011-01-10 11:29 ` [PATCH 13/13] FIX: Fill sys_name for disk add Adam Kwolek
2011-01-12 5:02 ` NeilBrown
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=20110112153918.078ce82c@notabene.brown \
--to=neilb@suse.de \
--cc=adam.kwolek@intel.com \
--cc=dan.j.williams@intel.com \
--cc=ed.ciechanowski@intel.com \
--cc=linux-raid@vger.kernel.org \
--cc=wojciech.neubauer@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 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.