diff options
author | Adam Kwolek <adam.kwolek@intel.com> | 2011-02-14 09:23:36 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-02-14 09:23:36 +1100 |
commit | b53477997dedea4eb3f31263cce4afa3b16d36fb (patch) | |
tree | 409c7295c03bb00b1fe0c6aecbb258f668bd172e /super-intel.c | |
parent | 41bf155e122ef69b229538cf3e3a6c5969825104 (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.c | 16 |
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: |