summaryrefslogtreecommitdiff
path: root/Create.c
diff options
context:
space:
mode:
Diffstat (limited to 'Create.c')
-rw-r--r--Create.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/Create.c b/Create.c
index 6ba4383..b4b6804 100644
--- a/Create.c
+++ b/Create.c
@@ -72,7 +72,7 @@ int Create(struct supertype *st, char *mddev,
int subdevs, struct mddev_dev *devlist,
int runstop, int verbose, int force, int assume_clean,
char *bitmap_file, int bitmap_chunk, int write_behind,
- int delay, int autof)
+ int delay, int autof, unsigned long long data_offset)
{
/*
* Create a new raid array.
@@ -263,7 +263,7 @@ int Create(struct supertype *st, char *mddev,
size &= ~(unsigned long long)(chunk - 1);
newsize = size * 2;
if (st && ! st->ss->validate_geometry(st, level, layout, raiddisks,
- &chunk, size*2, -1LL, NULL,
+ &chunk, size*2, data_offset, NULL,
&newsize, verbose>=0))
return 1;
@@ -346,7 +346,7 @@ int Create(struct supertype *st, char *mddev,
layout = default_layout(st, level, verbose);
switch (st->ss->validate_geometry(
st, level, layout, raiddisks,
- &chunk, size*2, -1LL, dname,
+ &chunk, size*2, data_offset, dname,
&freesize, verbose > 0)) {
case -1: /* Not valid, message printed, and not
* worth checking any further */
@@ -382,7 +382,7 @@ int Create(struct supertype *st, char *mddev,
layout = default_layout(st, level, 0);
if (!st->ss->validate_geometry(st, level, layout,
raiddisks,
- &chunk, size*2, -1LL,
+ &chunk, size*2, data_offset,
dname, &freesize,
verbose >= 0)) {
@@ -484,7 +484,8 @@ int Create(struct supertype *st, char *mddev,
/* size is meaningful */
if (!st->ss->validate_geometry(st, level, layout,
raiddisks,
- &chunk, minsize*2, -1LL,
+ &chunk, minsize*2,
+ data_offset,
NULL, NULL, 0)) {
fprintf(stderr, Name ": devices too large for RAID level %d\n", level);
return 1;
@@ -692,7 +693,8 @@ int Create(struct supertype *st, char *mddev,
name += 2;
}
}
- if (!st->ss->init_super(st, &info.array, size, name, homehost, uuid, -1LL))
+ if (!st->ss->init_super(st, &info.array, size, name, homehost,
+ uuid, data_offset))
goto abort_locked;
total_slots = info.array.nr_disks;