Re: mdadm 3.3: issue with mdmon --takeover

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

 



On 09/11/2013 01:35 AM, NeilBrown wrote:
> I think this patch will help.  The last hunk in particular should make the
> difference.
> 
> Please let me know if it fixes the problem.

Thanks for figuring this out. Indeed I forgot the possibility that
secondary LBA may be unused when I wrote that code.

Are you going to fix this directly? Otherwise I might go over it,
double-check, and submit a patch.

Martin

> 
> Thanks,
> NeilBrown
> 
> 
> diff --git a/super-ddf.c b/super-ddf.c
> index 636d7b4..86f9bb0 100644
> --- a/super-ddf.c
> +++ b/super-ddf.c
> @@ -880,7 +880,7 @@ static int load_ddf_headers(int fd, struct ddf_super *super, char *devname)
>  			super->primary.openflag && !super->secondary.openflag)
>  			)
>  			super->active = &super->secondary;
> -	} else if (devname)
> +	} else if (devname && super->anchor.secondary_lba != ~(__u64)0)
>  		pr_err("Failed to load secondary DDF header on %s\n",
>  		       devname);
>  	if (super->active == NULL)
> @@ -2810,7 +2810,8 @@ static int add_to_super_ddf(struct supertype *st,
>  	} while (0)
>  	__calc_lba(dd, ddf->dlist, workspace_lba, 32);
>  	__calc_lba(dd, ddf->dlist, primary_lba, 16);
> -	__calc_lba(dd, ddf->dlist, secondary_lba, 32);
> +	if (ddf->dlist == NULL || ddf->dlist->secondary_lba != ~(__u64)0)
> +		__calc_lba(dd, ddf->dlist, secondary_lba, 32);
>  	pde->config_size = dd->workspace_lba;
>  
>  	sprintf(pde->path, "%17.17s","Information: nil") ;
> @@ -2892,6 +2893,8 @@ static int __write_ddf_structure(struct dl *d, struct ddf_super *ddf, __u8 type)
>  	default:
>  		return 0;
>  	}
> +	if (sector == ~(__u64)0)
> +		return 0;
>  
>  	header->type = type;
>  	header->openflag = 1;

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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