]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Grow.c
mdadm fix compilation for uClibc
[thirdparty/mdadm.git] / Grow.c
diff --git a/Grow.c b/Grow.c
index c02ff80006ba7a9468d4072707ad9c67b803b1d0..a8194bf05b69e3e86b5eefcc88241bdb837ea398 100644 (file)
--- 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;