linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] imsm: always use set_migr_type to set type of migration
@ 2011-10-05  9:59 Przemyslaw Czarnowski
  2011-10-06  3:54 ` NeilBrown
  0 siblings, 1 reply; 2+ messages in thread
From: Przemyslaw Czarnowski @ 2011-10-05  9:59 UTC (permalink / raw)
  To: neilb; +Cc: linux-raid, dan.j.williams, marcin.labun, ed.ciechanowski

For 'resync' besides the update of migration type (imsm_vol.migr_type
structure) additionally status (imsm_dev.status) flag is set to
DEV_VERIFY_AND_FIX. In order to clean up after migration, status flag
must be cleared. For this reason, migration type shouldn't be set
directly but via set_migr_type(). Otherwise status does not reflect
the state of array.

Signed-off-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
---
 super-intel.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/super-intel.c b/super-intel.c
index 3185e91..216ec21 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -3112,7 +3112,7 @@ static void end_migration(struct imsm_dev *dev, __u8 map_state)
 			}
 
 	dev->vol.migr_state = 0;
-	dev->vol.migr_type = 0;
+	set_migr_type(dev, 0);
 	dev->vol.curr_migr_unit = 0;
 	map->map_state = map_state;
 }
@@ -6124,7 +6124,7 @@ static void imsm_progress_container_reshape(struct intel_super *super)
 		map->num_members = prev_disks;
 		dev->vol.migr_state = 1;
 		dev->vol.curr_migr_unit = 0;
-		dev->vol.migr_type = MIGR_GEN_MIGR;
+		set_migr_type(dev, MIGR_GEN_MIGR);
 		for (i = prev_num_members;
 		     i < map->num_members; i++)
 			set_imsm_ord_tbl_ent(map, i, i);
@@ -6174,7 +6174,7 @@ static int imsm_set_array_state(struct active_array *a, int consistent)
 				if (0) {
 				struct imsm_map *map2 = get_imsm_map(dev, 1);
 				dev->vol.migr_state = 0;
-				dev->vol.migr_type = 0;
+				set_migr_type(dev, 0);
 				dev->vol.curr_migr_unit = 0;
 				memcpy(map, map2, sizeof_imsm_map(map2));
 				super->updates_pending++;
@@ -7053,7 +7053,7 @@ static int apply_reshape_container_disks_update(struct imsm_update_reshape *u,
 			devices_to_reshape--;
 			newdev->vol.migr_state = 1;
 			newdev->vol.curr_migr_unit = 0;
-			newdev->vol.migr_type = MIGR_GEN_MIGR;
+			set_migr_type(newdev, MIGR_GEN_MIGR);
 			newmap->num_members = u->new_raid_disks;
 			for (i = 0; i < delta_disks; i++) {
 				set_imsm_ord_tbl_ent(newmap,


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] imsm: always use set_migr_type to set type of migration
  2011-10-05  9:59 [PATCH] imsm: always use set_migr_type to set type of migration Przemyslaw Czarnowski
@ 2011-10-06  3:54 ` NeilBrown
  0 siblings, 0 replies; 2+ messages in thread
From: NeilBrown @ 2011-10-06  3:54 UTC (permalink / raw)
  To: Przemyslaw Czarnowski
  Cc: linux-raid, dan.j.williams, marcin.labun, ed.ciechanowski

[-- Attachment #1: Type: text/plain, Size: 2517 bytes --]

On Wed, 05 Oct 2011 11:59:50 +0200 Przemyslaw Czarnowski
<przemyslaw.hawrylewicz.czarnowski@intel.com> wrote:

> For 'resync' besides the update of migration type (imsm_vol.migr_type
> structure) additionally status (imsm_dev.status) flag is set to
> DEV_VERIFY_AND_FIX. In order to clean up after migration, status flag
> must be cleared. For this reason, migration type shouldn't be set
> directly but via set_migr_type(). Otherwise status does not reflect
> the state of array.
> 
> Signed-off-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
> ---
>  super-intel.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/super-intel.c b/super-intel.c
> index 3185e91..216ec21 100644
> --- a/super-intel.c
> +++ b/super-intel.c
> @@ -3112,7 +3112,7 @@ static void end_migration(struct imsm_dev *dev, __u8 map_state)
>  			}
>  
>  	dev->vol.migr_state = 0;
> -	dev->vol.migr_type = 0;
> +	set_migr_type(dev, 0);
>  	dev->vol.curr_migr_unit = 0;
>  	map->map_state = map_state;
>  }
> @@ -6124,7 +6124,7 @@ static void imsm_progress_container_reshape(struct intel_super *super)
>  		map->num_members = prev_disks;
>  		dev->vol.migr_state = 1;
>  		dev->vol.curr_migr_unit = 0;
> -		dev->vol.migr_type = MIGR_GEN_MIGR;
> +		set_migr_type(dev, MIGR_GEN_MIGR);
>  		for (i = prev_num_members;
>  		     i < map->num_members; i++)
>  			set_imsm_ord_tbl_ent(map, i, i);
> @@ -6174,7 +6174,7 @@ static int imsm_set_array_state(struct active_array *a, int consistent)
>  				if (0) {
>  				struct imsm_map *map2 = get_imsm_map(dev, 1);
>  				dev->vol.migr_state = 0;
> -				dev->vol.migr_type = 0;
> +				set_migr_type(dev, 0);
>  				dev->vol.curr_migr_unit = 0;
>  				memcpy(map, map2, sizeof_imsm_map(map2));
>  				super->updates_pending++;
> @@ -7053,7 +7053,7 @@ static int apply_reshape_container_disks_update(struct imsm_update_reshape *u,
>  			devices_to_reshape--;
>  			newdev->vol.migr_state = 1;
>  			newdev->vol.curr_migr_unit = 0;
> -			newdev->vol.migr_type = MIGR_GEN_MIGR;
> +			set_migr_type(newdev, MIGR_GEN_MIGR);
>  			newmap->num_members = u->new_raid_disks;
>  			for (i = 0; i < delta_disks; i++) {
>  				set_imsm_ord_tbl_ent(newmap,
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Applied, thanks.

NeilBrown


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-10-06  3:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-05  9:59 [PATCH] imsm: always use set_migr_type to set type of migration Przemyslaw Czarnowski
2011-10-06  3:54 ` NeilBrown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).