imsm: Fill recovery_blocked field present in mdinfo

If any reshape in container is active set recovery_blocked field.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
Adam Kwolek 2011-10-05 13:32:28 +11:00 committed by NeilBrown
parent 6e75048bc5
commit 3ad2563886
1 changed files with 4 additions and 2 deletions

View File

@ -2251,8 +2251,7 @@ int imsm_reshape_blocks_arrays_changes(struct intel_super *super)
*/
for (i_dev = super->devlist; i_dev; i_dev = i_dev->next) {
dev = i_dev->dev;
if (dev->vol.migr_state &&
dev->vol.migr_type == MIGR_GEN_MIGR) {
if (is_gen_migration(dev)) {
/* No repair during any migration in container
*/
rv = 1;
@ -2294,6 +2293,8 @@ static void getinfo_super_imsm_volume(struct supertype *st, struct mdinfo *info,
info->custom_array_size = __le32_to_cpu(dev->size_high);
info->custom_array_size <<= 32;
info->custom_array_size |= __le32_to_cpu(dev->size_low);
info->recovery_blocked = imsm_reshape_blocks_arrays_changes(st->sb);
if (prev_map && map->map_state == prev_map->map_state) {
info->reshape_active = 1;
info->new_level = get_imsm_raid_level(map);
@ -2516,6 +2517,7 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info, char *
info->disk.state = 0;
info->name[0] = 0;
info->recovery_start = MaxSector;
info->recovery_blocked = imsm_reshape_blocks_arrays_changes(st->sb);
/* do we have the all the insync disks that we expect? */
mpb = super->anchor;