Re: [PATCH 1/6] imsm: Add --export option for --detail-platform

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

 



On Wed, 26 Sep 2012 13:42:43 +0200 Maciej Naruszewicz
<maciej.naruszewicz@xxxxxxxxx> wrote:

> This option will provide most of information we can get via
> mdadm --detail-platform [-e format] in the key=value format.
> Example output:
> 
> $ mdadm --detail-platform
>        Platform : Intel(R) Matrix Storage Manager
>         Version : 9.5.0.1037
>     RAID Levels : raid0 raid1 raid10 raid5
>     Chunk Sizes : 4k 8k 16k 32k 64k 128k
>     2TB volumes : supported
>       2TB disks : not supported
>       Max Disks : 7
>     Max Volumes : 2 per array, 4 per controller
>  I/O Controller : /sys/devices/pci0000:00/0000:00:1f.2 (SATA)
> 
> $ mdadm --detail-platform --export
> MD_FIRMWARE_TYPE=imsm
> IMSM_VERSION=9.5.0.1037
> IMSM_SUPPORTED_RAID_LEVELS=raid0 raid1 raid10 raid5
> IMSM_SUPPORTED_CHUNK_SIZES=4k 8k 16k 32k 64k 128k
> IMSM_2TB_VOLUMES=yes
> IMSM_2TB_DISKS=no
> IMSM_MAX_DISKS=7
> IMSM_MAX_VOLUMES_PER_ARRAY=2
> IMSM_MAX_VOLUMES_PER_CONTROLLER=4
> 
> Signed-off-by: Maciej Naruszewicz <maciej.naruszewicz@xxxxxxxxx>
> ---
>  Detail.c      |    8 +++++--
>  ReadMe.c      |    4 ++-
>  mdadm.8.in    |    2 +-
>  mdadm.c       |    2 +-
>  mdadm.h       |    3 ++
>  super-intel.c |   70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 82 insertions(+), 7 deletions(-)
> 
> diff --git a/Detail.c b/Detail.c
> index f633d93..b0c31e6 100644
> --- a/Detail.c
> +++ b/Detail.c
> @@ -616,7 +616,7 @@ out:
>  	return rv;
>  }
>  
> -int Detail_Platform(struct superswitch *ss, int scan, int verbose)
> +int Detail_Platform(struct superswitch *ss, int scan, int verbose, int export)
>  {
>  	/* display platform capabilities for the given metadata format
>  	 * 'scan' in this context means iterate over all metadata types
> @@ -624,7 +624,9 @@ int Detail_Platform(struct superswitch *ss, int scan, int verbose)
>  	int i;
>  	int err = 1;
>  
> -	if (ss && ss->detail_platform)
> +	if (ss && export && ss->export_detail_platform)
> +		err = ss->export_detail_platform(verbose);
> +	else if (ss && ss->detail_platform)
>  		err = ss->detail_platform(verbose, 0);
>  	else if (ss) {
>  		if (verbose > 0)
> @@ -650,6 +652,8 @@ int Detail_Platform(struct superswitch *ss, int scan, int verbose)
>  			if (verbose > 0)
>  				pr_err("%s metadata is platform independent\n",
>  					meta->name ? : "[no name]");
> +		} else if (export){
> +			err |= meta->export_detail_platform(verbose);
>  		} else
>  			err |= meta->detail_platform(verbose, 0);
>  	}

I changed this to:

  } else if (export && meta->export_detail_platform) {

otherwise looks good,
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