Re: [PATCH] imsm: fix: correct checking newly missing disks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 14 Nov 2011 15:52:52 +0100 Lukasz Dorau <lukasz.dorau@xxxxxxxxx>
wrote:

> The problem occurs when RAID10 array under rebuild
> (after one disk fails) is assembled incrementally.
> Mdadm tries to start array just after adding the third disk
> and the volume is assembled incorrectly (in degraded state).
> 
> The cause is that container_enough depends on
> newly missing disks which are checked incorrectly now.
> They should be checked using always the first map.
> 
> Signed-off-by: Lukasz Dorau <lukasz.dorau@xxxxxxxxx>
> ---
>  super-intel.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/super-intel.c b/super-intel.c
> index 4ebee78..511a32a 100644
> --- a/super-intel.c
> +++ b/super-intel.c
> @@ -2529,13 +2529,13 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info, char *
>  
>  		failed = imsm_count_failed(super, dev);
>  		state = imsm_check_degraded(super, dev, failed);
> -		map = get_imsm_map(dev, dev->vol.migr_state);
> +		map = get_imsm_map(dev, 0);
>  
>  		/* any newly missing disks?
>  		 * (catches single-degraded vs double-degraded)
>  		 */
>  		for (j = 0; j < map->num_members; j++) {
> -			__u32 ord = get_imsm_ord_tbl_ent(dev, i, -1);
> +			__u32 ord = get_imsm_ord_tbl_ent(dev, i, 0);
>  			__u32 idx = ord_to_idx(ord);
>  
>  			if (!(ord & IMSM_ORD_REBUILD) &&

Applied,
thanks,

NeilBrown

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux