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