summaryrefslogtreecommitdiff
path: root/super-intel.c
diff options
context:
space:
mode:
authorAdam Kwolek <adam.kwolek@intel.com>2011-02-14 09:23:36 +1100
committerNeilBrown <neilb@suse.de>2011-02-14 09:23:36 +1100
commitb53477997dedea4eb3f31263cce4afa3b16d36fb (patch)
tree409c7295c03bb00b1fe0c6aecbb258f668bd172e /super-intel.c
parent41bf155e122ef69b229538cf3e3a6c5969825104 (diff)
imsm: Use single migration type for all migrations
Use single enum definition/migration type for all migrations. Using separate definitions causes limitation for number of changes in metadata implementation during single update for migration/reshape. Single CH_MIGRATION enum allows for many mtadata parameters change in single update. It will be possible to change i.e. chunk size together with raid level. In current implementation 2 metadata updates would be required for such action, one using CH_CHUNK_MIGR and second using CH_LEVEL_MIGRATION migration type. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super-intel.c')
-rw-r--r--super-intel.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/super-intel.c b/super-intel.c
index 2875adea..f2efc6fd 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -294,8 +294,7 @@ struct extent {
/* definitions of reshape process types */
enum imsm_reshape_type {
CH_TAKEOVER,
- CH_CHUNK_MIGR,
- CH_LEVEL_MIGRATION
+ CH_MIGRATION,
};
/* definition of messages passed to imsm_process_update */
@@ -6919,7 +6918,7 @@ enum imsm_reshape_type imsm_analyze_change(struct supertype *st,
switch (info.array.level) {
case 0:
if (geo->level == 5) {
- change = CH_LEVEL_MIGRATION;
+ change = CH_MIGRATION;
check_devs = 1;
}
if (geo->level == 10) {
@@ -6935,7 +6934,7 @@ enum imsm_reshape_type imsm_analyze_change(struct supertype *st,
break;
case 5:
if (geo->level == 0)
- change = CH_LEVEL_MIGRATION;
+ change = CH_MIGRATION;
break;
case 10:
if (geo->level == 0) {
@@ -6956,7 +6955,7 @@ enum imsm_reshape_type imsm_analyze_change(struct supertype *st,
if ((geo->layout != info.array.layout)
&& ((geo->layout != UnSet) && (geo->layout != -1))) {
- change = CH_LEVEL_MIGRATION;
+ change = CH_MIGRATION;
if ((info.array.layout == 0)
&& (info.array.level == 5)
&& (geo->layout == 5)) {
@@ -6980,7 +6979,7 @@ enum imsm_reshape_type imsm_analyze_change(struct supertype *st,
if ((geo->chunksize > 0) && (geo->chunksize != UnSet)
&& (geo->chunksize != info.array.chunk_size))
- change = CH_CHUNK_MIGR;
+ change = CH_MIGRATION;
else
geo->chunksize = info.array.chunk_size;
@@ -7128,10 +7127,7 @@ static int imsm_reshape_super(struct supertype *st, long long size, int level,
case CH_TAKEOVER:
ret_val = imsm_takeover(st, &geo);
break;
- case CH_CHUNK_MIGR:
- ret_val = 0;
- break;
- case CH_LEVEL_MIGRATION:
+ case CH_MIGRATION:
ret_val = 0;
break;
default: