diff options
author | Dave Jiang <dave.jiang@intel.com> | 2010-06-15 18:41:53 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2010-06-15 18:41:53 -0700 |
commit | 0bd16cf2173695726f1ed2f9372c613003d80f9a (patch) | |
tree | ab82b85b1e1dfebccbcbbef03f4ad917b6ba1d83 /super-intel.c | |
parent | 484240d8a3facde992009efd81bfa4cc0c79287d (diff) | |
download | mdadm-0bd16cf2173695726f1ed2f9372c613003d80f9a.tar.gz mdadm-0bd16cf2173695726f1ed2f9372c613003d80f9a.tar.xz mdadm-0bd16cf2173695726f1ed2f9372c613003d80f9a.zip |
create: Check with OROM limit before setting default chunk size
Make create check with the appropriate meta data handler and see what the
largest chunk size is supported. The current 512K default is not supported
by existing imsm OROM.
[dan.j.williams@intel.com: trim the upper limit to 512k for future oroms]
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'super-intel.c')
-rw-r--r-- | super-intel.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/super-intel.c b/super-intel.c index 394ace4..e212d9a 100644 --- a/super-intel.c +++ b/super-intel.c @@ -4003,6 +4003,17 @@ static int validate_geometry_imsm(struct supertype *st, int level, int layout, close(cfd); return 0; } + +static int default_chunk_imsm(struct supertype *st) +{ + struct intel_super *super = st->sb; + + if (!super->orom) + return 0; + + return imsm_orom_default_chunk(super->orom); +} + #endif /* MDASSEMBLE */ static int is_rebuilding(struct imsm_dev *dev) @@ -5240,6 +5251,7 @@ struct superswitch super_imsm = { .brief_detail_super = brief_detail_super_imsm, .write_init_super = write_init_super_imsm, .validate_geometry = validate_geometry_imsm, + .default_chunk = default_chunk_imsm, .add_to_super = add_to_super_imsm, .detail_platform = detail_platform_imsm, #endif |