X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Grow.c;h=a8194bf05b69e3e86b5eefcc88241bdb837ea398;hb=4ef2f11e28800373f045e1f0c1336f13f89b79c9;hp=c02ff80006ba7a9468d4072707ad9c67b803b1d0;hpb=06c7f68e40134cbef3186426ebf63c4f6d4e30f5;p=thirdparty%2Fmdadm.git diff --git a/Grow.c b/Grow.c index c02ff800..a8194bf0 100644 --- a/Grow.c +++ b/Grow.c @@ -435,7 +435,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, int nrdisks; int err; - struct sysarray *sra; + struct mdinfo *sra; struct mdinfo *sd; if (ioctl(fd, GET_ARRAY_INFO, &array) < 0) { @@ -615,7 +615,8 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, last_block = nstripe * ndata; ostripe = last_block / odata / (ochunk/512) * (ochunk/512); } - printf("mdadm: Need to backup %lluK of critical section..\n", last_block/2); + fprintf(stderr, Name ": Need to backup %lluK of critical " + "section..\n", last_block/2); sra = sysfs_read(fd, 0, GET_COMPONENT|GET_DEVS|GET_OFFSET|GET_STATE| @@ -631,13 +632,13 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, devname); return 1; } - if (sra->spares == 0 && backup_file == NULL) { + if (sra->array.spare_disks == 0 && backup_file == NULL) { fprintf(stderr, Name ": %s: Cannot grow - need a spare or backup-file to backup critical section\n", devname); return 1; } - nrdisks = array.nr_disks + sra->spares; + nrdisks = array.nr_disks + sra->array.spare_disks; /* Now we need to open all these devices so we can read/write. */ fdlist = malloc((1+nrdisks) * sizeof(int)); @@ -683,9 +684,9 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, " --grow aborted\n", devname, i); goto abort; } - spares = sra->spares; + spares = sra->array.spare_disks; if (backup_file) { - fdlist[d] = open(backup_file, O_RDWR|O_CREAT|O_EXCL, 0600); + fdlist[d] = open(backup_file, O_RDWR|O_CREAT|O_EXCL, S_IRUSR | S_IWUSR); if (fdlist[d] < 0) { fprintf(stderr, Name ": %s: cannot create backup file %s: %s\n", devname, backup_file, strerror(errno)); @@ -837,7 +838,7 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, if (backup_file) unlink(backup_file); - printf(Name ": ... critical section passed.\n"); + fprintf(stderr, Name ": ... critical section passed.\n"); break; } return 0;