]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Use new struct context and struct shape for Grow_addbitmap
authorNeilBrown <neilb@suse.de>
Mon, 9 Jul 2012 07:22:12 +0000 (17:22 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 9 Jul 2012 07:22:12 +0000 (17:22 +1000)
Signed-off-by: NeilBrown <neilb@suse.de>
Grow.c
mdadm.c
mdadm.h

diff --git a/Grow.c b/Grow.c
index 0edeb01498219efe3575a2d2510cd135f82c1836..d13b7f3bdc58d85d715f926090c104eeea5e6785 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -265,7 +265,7 @@ int Grow_Add_device(char *devname, int fd, char *newdev)
        return 0;
 }
 
-int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int write_behind, int force)
+int Grow_addbitmap(char *devname, int fd, struct context *c, struct shape *s)
 {
        /*
         * First check that array doesn't have a bitmap
@@ -300,7 +300,7 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                return 1;
        }
        if (bmf.pathname[0]) {
-               if (strcmp(file,"none")==0) {
+               if (strcmp(s->bitmap_file,"none")==0) {
                        if (ioctl(fd, SET_BITMAP_FILE, -1)!= 0) {
                                pr_err("failed to remove bitmap %s\n",
                                        bmf.pathname);
@@ -317,7 +317,7 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                return 1;
        }
        if (array.state & (1<<MD_SB_BITMAP_PRESENT)) {
-               if (strcmp(file, "none")==0) {
+               if (strcmp(s->bitmap_file, "none")==0) {
                        array.state &= ~(1<<MD_SB_BITMAP_PRESENT);
                        if (ioctl(fd, SET_ARRAY_INFO, &array)!= 0) {
                                pr_err("failed to remove internal bitmap.\n");
@@ -330,7 +330,7 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                return 1;
        }
 
-       if (strcmp(file, "none") == 0) {
+       if (strcmp(s->bitmap_file, "none") == 0) {
                pr_err("no bitmap found on %s\n", devname);
                return 1;
        }
@@ -370,7 +370,7 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                free(st);
                return 1;
        }
-       if (strcmp(file, "internal") == 0) {
+       if (strcmp(s->bitmap_file, "internal") == 0) {
                int rv;
                int d;
                int offset_setable = 0;
@@ -402,7 +402,7 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                                if (st->ss->load_super(st, fd2, NULL)==0) {
                                        if (st->ss->add_internal_bitmap(
                                                    st,
-                                                   &chunk, delay, write_behind,
+                                                   &s->bitmap_chunk, c->delay, s->write_behind,
                                                    bitmapsize, offset_setable,
                                                    major)
                                                )
@@ -466,14 +466,14 @@ int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int
                        pr_err("cannot find UUID for array!\n");
                        return 1;
                }
-               if (CreateBitmap(file, force, (char*)uuid, chunk,
-                                delay, write_behind, bitmapsize, major)) {
+               if (CreateBitmap(s->bitmap_file, c->force, (char*)uuid, s->bitmap_chunk,
+                                c->delay, s->write_behind, bitmapsize, major)) {
                        return 1;
                }
-               bitmap_fd = open(file, O_RDWR);
+               bitmap_fd = open(s->bitmap_file, O_RDWR);
                if (bitmap_fd < 0) {
                        pr_err("weird: %s cannot be opened\n",
-                               file);
+                               s->bitmap_file);
                        return 1;
                }
                if (ioctl(fd, SET_BITMAP_FILE, bitmap_fd) < 0) {
diff --git a/mdadm.c b/mdadm.c
index 222ba6c4ba13e4c9d04c49a3623bd2e0838c8d88..4c7c5ea51a646c44aca671d9fb6c49eb54dbc9b1 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -1442,8 +1442,7 @@ int main(int argc, char *argv[])
                        }
                        if (c.delay == 0)
                                c.delay = DEFAULT_BITMAP_DELAY;
-                       rv = Grow_addbitmap(devlist->devname, mdfd, s.bitmap_file,
-                                           s.bitmap_chunk, c.delay, s.write_behind, c.force);
+                       rv = Grow_addbitmap(devlist->devname, mdfd, &c, &s);
                } else if (grow_continue)
                        rv = Grow_continue_command(devlist->devname,
                                                   mdfd, c.backup_file,
diff --git a/mdadm.h b/mdadm.h
index 5376bc509334cf650e6f07cc9e1216c03da9cf8f..97bcddbd21e44c83bafc7e9b8616de614f42b1d7 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -1087,7 +1087,8 @@ extern int Manage_subdevs(char *devname, int fd,
                          char *update, int force);
 extern int autodetect(void);
 extern int Grow_Add_device(char *devname, int fd, char *newdev);
-extern int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int write_behind, int force);
+extern int Grow_addbitmap(char *devname, int fd,
+                         struct context *c, struct shape *s);
 extern int Grow_reshape(char *devname, int fd,
                        struct mddev_dev *devlist,
                        struct context *c, struct shape *s);