]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Grow.c
mdadm: load default sysfs attributes after assemblation
[thirdparty/mdadm.git] / Grow.c
diff --git a/Grow.c b/Grow.c
index 4436a4d6bd4cdff4fe3ebe03c2a1f3eebdf33196..764374fc2da4f38a3672389b6ed9dffad5614612 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -446,7 +446,7 @@ int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
                if (offset_setable) {
                        st->ss->getinfo_super(st, mdi, NULL);
                        if (sysfs_init(mdi, fd, NULL)) {
-                               pr_err("failed to intialize sysfs.\n");
+                               pr_err("failed to initialize sysfs.\n");
                                free(mdi);
                        }
                        rv = sysfs_set_num_signed(mdi, NULL, "bitmap/location",
@@ -1196,7 +1196,8 @@ unsigned long compute_backup_blocks(int nchunk, int ochunk,
        /* Find GCD */
        a = GCD(a, b);
        /* LCM == product / GCD */
-       blocks = (ochunk/512) * (nchunk/512) * odata * ndata / a;
+       blocks = (unsigned long)(ochunk/512) * (unsigned long)(nchunk/512) *
+               odata * ndata / a;
 
        return blocks;
 }
@@ -2177,7 +2178,7 @@ size_change_error:
        memset(&info, 0, sizeof(info));
        info.array = array;
        if (sysfs_init(&info, fd, NULL)) {
-               pr_err("failed to intialize sysfs.\n");
+               pr_err("failed to initialize sysfs.\n");
                rv = 1;
                goto release;
        }
@@ -2612,8 +2613,8 @@ static int set_new_data_offset(struct mdinfo *sra, struct supertype *st,
                                        goto release;
                                }
                                if (data_offset != INVALID_SECTORS &&
-                                   data_offset < sd->data_offset - min) {
-                                       pr_err("--data-offset too small on %s\n",
+                                   data_offset > sd->data_offset - min) {
+                                       pr_err("--data-offset too large on %s\n",
                                                dn);
                                        goto release;
                                }
@@ -2902,7 +2903,7 @@ static int impose_level(int fd, int level, char *devname, int verbose)
        struct mdinfo info;
 
        if (sysfs_init(&info, fd, NULL)) {
-               pr_err("failed to intialize sysfs.\n");
+               pr_err("failed to initialize sysfs.\n");
                return  1;
        }
 
@@ -3285,7 +3286,7 @@ static int reshape_array(char *container, int fd, char *devname,
                                goto release;
                        } else if (verbose >= 0)
                                printf("chunk size for %s set to %d\n",
-                                      devname, array.chunk_size);
+                                      devname, info->new_chunk);
                }
                unfreeze(st);
                return 0;