]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Assemble.c
Change MAJOR() etc to major() etc
[thirdparty/mdadm.git] / Assemble.c
index 0d222512d0c271fc1a904ab37709ae8a283c2258..4003e06a547bd89b257840c2bf1171270c64530b 100644 (file)
@@ -288,7 +288,7 @@ int Assemble(char *mddev, int mdfd,
                        if (strcmp(update, "super-minor") ==0) {
                                struct stat stb2;
                                fstat(mdfd, &stb2);
-                               super.md_minor = MINOR(stb2.st_rdev);
+                               super.md_minor = minor(stb2.st_rdev);
                                if (verbose)
                                        fprintf(stderr, Name ": updating superblock of %s with minor number %d\n",
                                                devname, super.md_minor);
@@ -320,6 +320,11 @@ int Assemble(char *mddev, int mdfd,
                                        } else if (i >= super.raid_disks && super.disks[i].number == 0)
                                                super.disks[i].state = 0;
                        }
+                       if (strcmp(update, "resync") == 0) {
+                               /* make sure resync happens */
+                               super.state &= ~(1<<MD_SB_CLEAN);
+                               super.recovery_cp = 0;
+                       }
                        super.sb_csum = calc_sb_csum(&super);
                        dfd = open(devname, O_RDWR, 0);
                        if (dfd < 0) 
@@ -336,8 +341,8 @@ int Assemble(char *mddev, int mdfd,
                        fprintf(stderr, Name ": %s is identified as a member of %s, slot %d.\n",
                                devname, mddev, super.this_disk.raid_disk);
                devices[devcnt].devname = devname;
-               devices[devcnt].major = MAJOR(stb.st_rdev);
-               devices[devcnt].minor = MINOR(stb.st_rdev);
+               devices[devcnt].major = major(stb.st_rdev);
+               devices[devcnt].minor = minor(stb.st_rdev);
                devices[devcnt].oldmajor = super.this_disk.major;
                devices[devcnt].oldminor = super.this_disk.minor;
                devices[devcnt].events = md_event(&super);
@@ -660,7 +665,7 @@ This doesnt work yet
                 * so we can just start the array
                 */
                unsigned long dev;
-               dev = MKDEV(devices[chosen_drive].major,
+               dev = makedev(devices[chosen_drive].major,
                            devices[chosen_drive].minor);
                if (ioctl(mdfd, START_ARRAY, dev)) {
                    fprintf(stderr, Name ": Cannot start array: %s\n",