Re: [PATCH] imsm: Forbid spanning between multiple controllers.

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

 



On Fri, 09 Nov 2012 15:46:36 +0100 Marcin Tomczak <marcin.tomczak@xxxxxxxxx>
wrote:

> Attaching disks to multiple controllers of the same type has been
> allowed so far. Now spanning between multiple controllers is disallowed
> at all by IMSM metadata.
> 
> Signed-off-by: Marcin Tomczak <marcin.tomczak@xxxxxxxxx>
> Reviewed-by: Lukasz Dorau <lukasz.dorau@xxxxxxxxx>
> ---
>  super-intel.c |   25 ++++++++-----------------
>  1 files changed, 8 insertions(+), 17 deletions(-)
> 
> diff --git a/super-intel.c b/super-intel.c
> index 544cb05..db437b9 100644
> --- a/super-intel.c
> +++ b/super-intel.c
> @@ -558,20 +558,11 @@ static int attach_hba_to_super(struct intel_super *super, struct sys_dev *device
>  	if (super->hba == NULL) {
>  		super->hba = alloc_intel_hba(device);
>  		return 1;
> -	}
> -
> -	hba = super->hba;
> -	/* Intel metadata allows for all disks attached to the same type HBA.
> -	 * Do not sypport odf HBA types mixing
> -	 */
> -	if (device->type != hba->type)
> +	} else
> +		/* IMSM metadata disallows to attach disks to multiple
> +		 * controllers.
> +		 */
>  		return 2;
> -
> -	while (hba->next)
> -		hba = hba->next;
> -
> -	hba->next = alloc_intel_hba(device);
> -	return 1;
>  }
>  
>  static struct sys_dev* find_disk_attached_hba(int fd, const char *devname)
> @@ -3018,11 +3009,11 @@ static int compare_super_imsm(struct supertype *st, struct supertype *tst)
>  	 */
>  	if (!check_env("IMSM_NO_PLATFORM")) {
>  		if (!first->hba || !sec->hba ||
> -		    (first->hba->type != sec->hba->type))  {
> +		    strcmp(first->hba->path, sec->hba->path) != 0)  {
>  			fprintf(stderr,
>  				"HBAs of devices does not match %s != %s\n",
> -				first->hba ? get_sys_dev_type(first->hba->type) : NULL,
> -				sec->hba ? get_sys_dev_type(sec->hba->type) : NULL);
> +				first->hba ? first->hba->path : NULL,
> +				sec->hba ? sec->hba->path : NULL);
>  			return 3;
>  		}
>  	}
> @@ -3800,7 +3791,7 @@ static int find_intel_hba_capability(int fd, struct intel_super *super, char *de
>  			}
>  
>  			fprintf(stderr, ").\n"
> -				"    Mixing devices attached to different controllers "
> +				"    Mixing devices attached to multiple controllers "
>  				"is not allowed.\n");
>  		}
>  		free_sys_dev(&hba_name);
> 

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