diff options
Diffstat (limited to 'Create.c')
-rw-r--r-- | Create.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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; |