Status: ok Make 'size' an unsigned long when creating arrays ----------- Diffstat output ------------ ./ChangeLog | 3 +++ ./Create.c | 14 +++++++------- ./mdadm.h | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff ./ChangeLog~current~ ./ChangeLog --- ./ChangeLog~current~ 2003-07-29 10:11:25.000000000 +1000 +++ ./ChangeLog 2003-07-29 10:11:25.000000000 +1000 @@ -1,3 +1,6 @@ +Changes Prior to this release + - Make 'size' and unsigned long in Create to allow creation of + larger arrays. Changes Prior to 1.2.0 release - Fix bug where --daemonise required an argument. - In --assemble --verbose, print appropriate message if device is diff ./Create.c~current~ ./Create.c --- ./Create.c~current~ 2003-07-29 10:11:25.000000000 +1000 +++ ./Create.c 2003-07-29 10:11:24.000000000 +1000 @@ -32,7 +32,7 @@ #include "md_p.h" int Create(char *mddev, int mdfd, - int chunk, int level, int layout, int size, int raiddisks, int sparedisks, + int chunk, int level, int layout, unsigned long size, int raiddisks, int sparedisks, int subdevs, mddev_dev_t devlist, int runstop, int verbose, int force) { @@ -52,7 +52,7 @@ int Create(char *mddev, int mdfd, * if runstop==run, or raiddisks diskswere used, * RUN_ARRAY */ - int minsize=0, maxsize=0; + unsigned long minsize=0, maxsize=0; char *mindisc = NULL; char *maxdisc = NULL; int dnum; @@ -127,7 +127,7 @@ int Create(char *mddev, int mdfd, dnum = 0; for (dv=devlist; dv; dv=dv->next, dnum++) { char *dname = dv->devname; - int dsize, freesize; + unsigned long dsize, freesize; int fd; if (strcasecmp(dname, "missing")==0) { if (first_missing > dnum) @@ -153,7 +153,7 @@ int Create(char *mddev, int mdfd, continue; } if (dsize < MD_RESERVED_SECTORS*2) { - fprintf(stderr, Name ": %s is too small: %dK\n", + fprintf(stderr, Name ": %s is too small: %luK\n", dname, dsize/2); fail = 1; close(fd); @@ -164,7 +164,7 @@ int Create(char *mddev, int mdfd, if (size && freesize < size) { fprintf(stderr, Name ": %s is smaller that given size." - " %dK < %dK + superblock\n", dname, freesize, size); + " %luK < %luK + superblock\n", dname, freesize, size); fail = 1; close(fd); continue; @@ -193,10 +193,10 @@ int Create(char *mddev, int mdfd, } size = minsize; if (verbose && level>0) - fprintf(stderr, Name ": size set to %dK\n", size); + fprintf(stderr, Name ": size set to %luK\n", size); } if (level >= 1 && ((maxsize-size)*100 > maxsize)) { - fprintf(stderr, Name ": largest drive (%s) exceed size (%dK) by more than 1%%\n", + fprintf(stderr, Name ": largest drive (%s) exceed size (%luK) by more than 1%%\n", maxdisc, size); warn = 1; } diff ./mdadm.h~current~ ./mdadm.h --- ./mdadm.h~current~ 2003-07-29 10:11:25.000000000 +1000 +++ ./mdadm.h 2003-07-29 10:11:24.000000000 +1000 @@ -159,7 +159,7 @@ extern int Build(char *mddev, int mdfd, extern int Create(char *mddev, int mdfd, - int chunk, int level, int layout, int size, int raiddisks, int sparedisks, + int chunk, int level, int layout, unsigned long size, int raiddisks, int sparedisks, int subdevs, mddev_dev_t devlist, int runstop, int verbose, int force);