mdctl-v0.4.2 mdctl-v0.4.2
authorNeil Brown <neilb@suse.de>
Thu, 26 Jul 2001 20:47:22 +0000 (20:47 +0000)
committerNeil Brown <neilb@suse.de>
Thu, 26 Jul 2001 20:47:22 +0000 (20:47 +0000)
Assemble.c
ReadMe.c
TODO
config.c

index fe0b99a..e5210ce 100644 (file)
@@ -341,7 +341,7 @@ int Assemble(char *mddev, int mdfd,
                /* First, add the raid disks */
                for (i=0; i<first_super.raid_disks; i++) {
                        int j = best[i];
-                       if (devices[j].uptodate) {
+                       if (j >= 0 && devices[j].uptodate) {
                                mdu_disk_info_t disk;
                                memset(&disk, 0, sizeof(disk));
                                disk.major = devices[j].major;
index c28b18b..ccfdaac 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -29,7 +29,7 @@
 
 #include "mdctl.h"
 
-char Version[] = Name " - v0.4.1 - 26 July 2001\n";
+char Version[] = Name " - v0.4.2 - 27 July 2001\n";
 /*
  * File: ReadMe.c
  *
diff --git a/TODO b/TODO
index c4d1309..017bcac 100644 (file)
--- a/TODO
+++ b/TODO
@@ -20,3 +20,6 @@
 
 - when --assemble --scan, if an underlying device is an md device, 
   then try to assemble that device first.
+
+
+- mdctl -S /dev/md0 /dev/md1 gives internal error
index 4437de7..2feaae3 100644 (file)
--- a/config.c
+++ b/config.c
@@ -216,6 +216,7 @@ int devline(char *line)
 }
 
 mddev_uuid_t uuidlist = NULL;
+mddev_uuid_t *uidlp = &uuidlist;
 
 void arrayline(char *line)
 {
@@ -254,8 +255,9 @@ void arrayline(char *line)
        mu = malloc(sizeof(*mu));
        mu->devname = strdup(dev);
        memcpy(mu->uuid, uuid, sizeof(uuid));
-       mu->next = uuidlist;
-       uuidlist = mu;
+       mu->next = NULL;
+       *uidlp = mu;
+       uidlp = &mu->next;
     }
 }