]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Two small fixes related to enough()
authorNeilBrown <neilb@suse.de>
Wed, 4 Dec 2013 21:58:21 +0000 (08:58 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 4 Dec 2013 21:58:21 +0000 (08:58 +1100)
1/ enough_fd doesn't use avail_disks any more, so discard it.

2/ Manage_Add increments 'found' at the wrong place, so it can
   waste time before calling enough().

Signed-off-by: NeilBrown <neilb@suse.de>
Manage.c
util.c

index 059cf5b8cc83cac15ae52b25d1312f9d0dcc956f..6ccd275919ca2fa7fd41b1cacdfa6854dd421393 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -847,10 +847,10 @@ int Manage_add(int fd, int tfd, struct mddev_dev *dv,
                                        continue;
                                if (disc.major == 0 && disc.minor == 0)
                                        continue;
+                               found++;
                                if (!(disc.state & (1<<MD_DISK_SYNC)))
                                        continue;
                                avail[disc.raid_disk] = 1;
-                               found++;
                        }
                        array_failed = !enough(array->level, array->raid_disks,
                                               array->layout, 1, avail);
diff --git a/util.c b/util.c
index b29a3ee7ce4708e65da8abc6718a173b52986407..12a19e7a5a3ac765bbd088ebc304ebd9bddcaead 100644 (file)
--- a/util.c
+++ b/util.c
@@ -387,7 +387,6 @@ int enough_fd(int fd)
 {
        struct mdu_array_info_s array;
        struct mdu_disk_info_s disk;
-       int avail_disks = 0;
        int i, rv;
        char *avail;
 
@@ -407,7 +406,6 @@ int enough_fd(int fd)
                        continue;
                if (disk.raid_disk < 0 || disk.raid_disk >= array.raid_disks)
                        continue;
-               avail_disks++;
                avail[disk.raid_disk] = 1;
        }
        /* This is used on an active array, so assume it is clean */