]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Stuff
authorNeil Brown <neilb@suse.de>
Mon, 17 Apr 2006 23:42:52 +0000 (23:42 +0000)
committerNeil Brown <neilb@suse.de>
Mon, 17 Apr 2006 23:42:52 +0000 (23:42 +0000)
Description...

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
mdadm.c
super1.c
util.c

diff --git a/mdadm.c b/mdadm.c
index 44fd30c9cf3db74ae8f91460242c2622d8ca9335..e8e8ed375d91e6bc9199ccfd32851599ba33fb90 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -778,8 +778,8 @@ int main(int argc, char *argv[])
 
        if (raiddisks) {
                if (raiddisks > max_disks) {
-                       fprintf(stderr, Name ": invalid number of raid devices: %s\n",
-                               optarg);
+                       fprintf(stderr, Name ": invalid number of raid devices: %d\n",
+                               raiddisks);
                        exit(2);
                }
                if (raiddisks == 1 &&  !force && level != -5) {
@@ -791,8 +791,8 @@ int main(int argc, char *argv[])
        }
        if (sparedisks) {
                if ( sparedisks > max_disks - raiddisks) {
-                       fprintf(stderr, Name ": invalid number of spare-devices: %s\n",
-                               optarg);
+                       fprintf(stderr, Name ": invalid number of spare-devices: %d\n",
+                               sparedisks);
                        exit(2);
                }
        }
index 6391857611f83ee22fafa6b335f8e5111a6b6616..114ef83ed1a654a4e1edc8f179323838b32c7f1b 100644 (file)
--- a/super1.c
+++ b/super1.c
@@ -121,7 +121,7 @@ static void examine_super1(void *sbv)
        struct mdp_superblock_1 *sb = sbv;
        time_t atime;
        int d;
-       int spares, faulty;
+       int faulty;
        int i;
        char *c;
 
@@ -198,15 +198,12 @@ static void examine_super1(void *sbv)
                else if (cnt == 1) printf("u");
                else printf ("_");
        }
-       spares = faulty = 0;
+       faulty = 0;
        for (i=0; i< __le32_to_cpu(sb->max_dev); i++) {
                int role = __le16_to_cpu(sb->dev_roles[i]);
-               switch (role) {
-               case 0xFFFF: spares++; break;
-               case 0xFFFE: faulty++;
-               }
+               if (role == 0xFFFE)
+                       faulty++;
        }
-       if (spares) printf(" %d spares", spares);
        if (faulty) printf(" %d failed", faulty);
        printf("\n");
 }
@@ -441,7 +438,7 @@ static void add_to_super1(void *sbv, mdu_disk_info_t *dk)
 static int store_super1(struct supertype *st, int fd, void *sbv)
 {
        struct mdp_superblock_1 *sb = sbv;
-       long long sb_offset;
+       unsigned long long sb_offset;
        int sbsize;
        long size;
 
@@ -467,7 +464,7 @@ static int store_super1(struct supertype *st, int fd, void *sbv)
                sb_offset &= ~(4*2-1);
                break;
        case 1:
-               sb->super_offset = __cpu_to_le64(0);
+               sb_offset = 0;
                break;
        case 2:
                sb_offset = 4*2;
@@ -478,14 +475,14 @@ static int store_super1(struct supertype *st, int fd, void *sbv)
 
 
     
-       if (sb_offset != (__le64_to_cpu(sb->super_offset) << 9 ) &&
-           0 != (__le64_to_cpu(sb->super_offset) << 9 )
+       if (sb_offset != __le64_to_cpu(sb->super_offset) &&
+           0 != __le64_to_cpu(sb->super_offset)
                ) {
                fprintf(stderr, Name ": internal error - sb_offset is wrong\n");
                abort();
        }
 
-       if (lseek64(fd, sb_offset, 0)< 0LL)
+       if (lseek64(fd, sb_offset << 9, 0)< 0LL)
                return 3;
 
        sbsize = sizeof(*sb) + 2 * __le32_to_cpu(sb->max_dev);
diff --git a/util.c b/util.c
index 04a689bb9523b06c179306a95890f27fa08be9f6..05362c7a6d1b13518e08b6c991d1b6885926f44b 100644 (file)
--- a/util.c
+++ b/util.c
@@ -537,11 +537,15 @@ struct supertype *super_by_version(int vers, int minor)
 {
        struct supertype *st = malloc(sizeof(*st));
        if (!st) return st;
-       if (vers == 0)
+       if (vers == 0) {
                st->ss = &super0;
+               st->max_devs = MD_SB_DISKS;
+       }
 
-       if (vers == 1)
+       if (vers == 1) {
                st->ss = &super1;
+               st->max_devs = 384;
+       }
        st->minor_version = minor;
        return st;
 }