From: Adam Kwolek <adam.kwolek@intel.com>
To: neilb@suse.de
Cc: linux-raid@vger.kernel.org, dan.j.williams@intel.com,
ed.ciechanowski@intel.com, wojciech.neubauer@intel.com
Subject: [PATCH 7/9] FIX: Set 'new' geometry when assembling reshaped array
Date: Wed, 02 Mar 2011 14:29:51 +0100 [thread overview]
Message-ID: <20110302132951.24771.398.stgit@gklab-128-013.igk.intel.com> (raw)
In-Reply-To: <20110302132426.24771.99191.stgit@gklab-128-013.igk.intel.com>
For proper array configuration the following steps has to be taken:
1. set 'old' geometry and reshape position (done in sysfs_set_array())
2. set 'new' geometry (currently new raid_disks only)
3. add disks
4. start array readonly
Added code addressed p.2
In the one of last email, Neil points that sysfs_set_array()
should do this. Comment in sysfs_set_array() doesn't allow for this
due to required analysis for 'new' geometry parameters.
Currently external metadata supports raid disks increase only,
so for now proposed in patch code should enough.
when more migrations for external metadata will be supported this code
will have to support other cases also.
Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
---
Assemble.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/Assemble.c b/Assemble.c
index e31462d..e65022c 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -1527,10 +1527,24 @@ int assemble_container_content(struct supertype *st, int mdfd,
sysfs_init(content, mdfd, 0);
sra = sysfs_read(mdfd, 0, GET_VERSION);
- if (sra == NULL || strcmp(sra->text_version, content->text_version) != 0)
+ if (sra == NULL || strcmp(sra->text_version,
+ content->text_version) != 0) {
if (sysfs_set_array(content, md_get_version(mdfd)) != 0)
return 1;
-
+ if (content->reshape_active) {
+ /* set 'new' array geometry parameters
+ * to restart reshape
+ * ToDo:
+ * Temporary this is a "simple way".
+ * analyse_change() has to be used
+ * for array setup during reshape,
+ * when more array migrations will be supported
+ */
+ sysfs_set_num(content, NULL, "raid_disks",
+ content->array.raid_disks +
+ content->delta_disks);
+ }
+ }
if (sra)
sysfs_free(sra);
next prev parent reply other threads:[~2011-03-02 13:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-02 13:28 [PATCH 0/9] Grow_continue() - single array Adam Kwolek
2011-03-02 13:29 ` [PATCH 1/9] FIX: Do not configure and start, already started reshape Adam Kwolek
2011-03-02 13:29 ` [PATCH 2/9] FIX: Array during reshape cannot be configured Adam Kwolek
2011-03-02 13:29 ` [PATCH 3/9] imsm: FIX: Return blocks_per unit for general migration Adam Kwolek
2011-03-02 13:29 ` [PATCH 4/9] imsm: FIX: After checkpoint mark array have to be clean Adam Kwolek
2011-03-08 5:07 ` NeilBrown
2011-03-08 8:52 ` Kwolek, Adam
2011-03-08 22:14 ` NeilBrown
2011-03-09 7:31 ` Kwolek, Adam
2011-03-02 13:29 ` [PATCH 5/9] FIX: Continue reshape in the background Adam Kwolek
2011-03-02 13:29 ` [PATCH 6/9] FIX: Verify Backup file name before reshape Adam Kwolek
2011-03-02 13:29 ` Adam Kwolek [this message]
2011-03-02 13:29 ` [PATCH 8/9] FIX: Block array monitoring when assembling reshaped array Adam Kwolek
2011-03-02 13:30 ` [PATCH 9/9] imsm: FIX: Variables declaration cleanup Adam Kwolek
2011-03-08 6:43 ` [PATCH 0/9] Grow_continue() - single array NeilBrown
2011-03-08 11:18 ` Kwolek, Adam
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=20110302132951.24771.398.stgit@gklab-128-013.igk.intel.com \
--to=adam.kwolek@intel.com \
--cc=dan.j.williams@intel.com \
--cc=ed.ciechanowski@intel.com \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox