summaryrefslogtreecommitdiffstats
path: root/Create.c
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2010-06-15 18:41:53 -0700
committerDan Williams <dan.j.williams@intel.com>2010-06-15 18:41:53 -0700
commit0bd16cf2173695726f1ed2f9372c613003d80f9a (patch)
treeab82b85b1e1dfebccbcbbef03f4ad917b6ba1d83 /Create.c
parent484240d8a3facde992009efd81bfa4cc0c79287d (diff)
downloadmdadm-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 'Create.c')
-rw-r--r--Create.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Create.c b/Create.c
index b04388f..43e5f37 100644
--- a/Create.c
+++ b/Create.c
@@ -235,9 +235,13 @@ int Create(struct supertype *st, char *mddev,
case 6:
case 0:
if (chunk == 0) {
- chunk = 512;
+ if (st && st->ss->default_chunk)
+ chunk = st->ss->default_chunk(st);
+
+ chunk = chunk ? : 512;
+
if (verbose > 0)
- fprintf(stderr, Name ": chunk size defaults to 512K\n");
+ fprintf(stderr, Name ": chunk size defaults to %dK\n", chunk);
}
break;
case LEVEL_LINEAR: