diff options
author | NeilBrown <neilb@suse.de> | 2008-12-04 15:47:57 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-12-04 15:47:57 +1100 |
commit | e46273ebe4ce6dee3ecbb640027cd3c3eca9a921 (patch) | |
tree | a1cc9c9c0c01ed62a799a9c8198ee4bbebe6be35 | |
parent | ed034b1170781c773ebe61351280cba50001e812 (diff) | |
download | mdadm-e46273ebe4ce6dee3ecbb640027cd3c3eca9a921.tar.gz mdadm-e46273ebe4ce6dee3ecbb640027cd3c3eca9a921.tar.xz mdadm-e46273ebe4ce6dee3ecbb640027cd3c3eca9a921.zip |
Change 'size' argument to validate_geometry to be sectors, not K
That way it is the same a *freesize, and generally less confusing.
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | Create.c | 8 | ||||
-rw-r--r-- | mdadm.h | 1 | ||||
-rw-r--r-- | super-intel.c | 2 | ||||
-rw-r--r-- | super0.c | 4 |
4 files changed, 8 insertions, 7 deletions
@@ -240,7 +240,7 @@ int Create(struct supertype *st, char *mddev, } if (st && ! st->ss->validate_geometry(st, level, layout, raiddisks, - chunk, size, NULL, NULL, verbose>=0)) + chunk, size*2, NULL, NULL, verbose>=0)) return 1; /* now look at the subdevs */ @@ -276,7 +276,7 @@ int Create(struct supertype *st, char *mddev, st = superlist[i]->match_metadata_desc(name); if (st && !st->ss->validate_geometry (st, level, layout, raiddisks, - chunk, size, dname, &freesize, + chunk, size*2, dname, &freesize, verbose > 0)) st = NULL; } @@ -293,7 +293,7 @@ int Create(struct supertype *st, char *mddev, } else { if (!st->ss->validate_geometry(st, level, layout, raiddisks, - chunk, size, dname, + chunk, size*2, dname, &freesize, verbose > 0)) { @@ -356,7 +356,7 @@ int Create(struct supertype *st, char *mddev, /* size is meaningful */ if (!st->ss->validate_geometry(st, level, layout, raiddisks, - chunk, minsize, + chunk, minsize*2, NULL, NULL, 0)) { fprintf(stderr, Name ": devices too large for RAID level %d\n", level); return 1; @@ -532,6 +532,7 @@ extern struct superswitch { * added to validate changing size and new devices. If there are * inter-device dependencies, it should record sufficient details * so these can be validated. + * Both 'size' and '*freesize' are in sectors. chunk is bytes. */ int (*validate_geometry)(struct supertype *st, int level, int layout, int raiddisks, diff --git a/super-intel.c b/super-intel.c index 99419ff..f78957f 100644 --- a/super-intel.c +++ b/super-intel.c @@ -2295,7 +2295,7 @@ static int validate_geometry_imsm_volume(struct supertype *st, int level, * 'raiddisks' device extents of size 'size' at a given * offset */ - unsigned long long minsize = size*2 /* convert to blocks */; + unsigned long long minsize = size; unsigned long long start_offset = ~0ULL; int dcnt = 0; if (minsize == 0) @@ -1057,7 +1057,7 @@ static int validate_geometry0(struct supertype *st, int level, return 0; if (raiddisks > MD_SB_DISKS) return 0; - if (size > (0x7fffffffULL<<10)) + if (size > (0x7fffffffULL<<9)) return 0; if (!subdev) return 1; @@ -1078,7 +1078,7 @@ static int validate_geometry0(struct supertype *st, int level, if (ldsize < MD_RESERVED_SECTORS * 512) return 0; - if (size > (0x7fffffffULL<<10)) + if (size > (0x7fffffffULL<<9)) return 0; *freesize = MD_NEW_SIZE_SECTORS(ldsize >> 9); return 1; |