X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=Monitor.c;fp=Monitor.c;h=1ece8712b03261737050a32537e74afa154166f7;hb=0c0f09cb035b6a27a1d11c54836742a9945a5014;hp=9be2b5287a1ad00f3c2cc0045c7d6f524f9fe9f0;hpb=60c19530dd7cc6b38a75695a0a3d004bbe60d430;p=thirdparty%2Fmdadm.git diff --git a/Monitor.c b/Monitor.c index 9be2b528..1ece8712 100644 --- a/Monitor.c +++ b/Monitor.c @@ -1070,22 +1070,12 @@ static dev_t choose_spare(struct state *from, struct state *to, for (d = from->raid; !dev && d < MAX_DISKS; d++) { if (from->devid[d] > 0 && from->devstate[d] == 0) { struct dev_policy *pol; - unsigned long long dev_size; - unsigned int dev_sector_size; if (to->metadata->ss->external && test_partition_from_id(from->devid[d])) continue; - if (sc->min_size && - dev_size_from_id(from->devid[d], &dev_size) && - dev_size < sc->min_size) - continue; - - if (sc->sector_size && - dev_sector_size_from_id(from->devid[d], - &dev_sector_size) && - sc->sector_size != dev_sector_size) + if (devid_matches_criteria(from->devid[d], sc) == false) continue; pol = devid_policy(from->devid[d]); @@ -1170,12 +1160,12 @@ static void try_spare_migration(struct state *statelist) { struct state *from; struct state *st; - struct spare_criteria sc; link_containers_with_subarrays(statelist); for (st = statelist; st; st = st->next) if (st->active < st->raid && st->spare == 0 && !st->err) { struct domainlist *domlist = NULL; + struct spare_criteria sc = {0}; int d; struct state *to = st;