Destination arrays that do not have any domains are excluded
from spare sharing. We can check it early, without searching
for donor arrays.
Signed-off-by: Marcin Labun <marcin.labun@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
-static int check_donor(struct state *from, struct state *to,
- struct domainlist *domlist)
+static int check_donor(struct state *from, struct state *to)
return 0;
if (from->spare <= 0)
return 0;
return 0;
if (from->spare <= 0)
return 0;
- if (domlist == NULL)
- return 0;
to->metadata->ss->name);
if (to->spare_group)
domain_add(&domlist, to->spare_group);
to->metadata->ss->name);
if (to->spare_group)
domain_add(&domlist, to->spare_group);
+ /*
+ * No spare migration if the destination
+ * has no domain. Skip this array.
+ */
+ if (!domlist)
+ continue;
for (from=statelist ; from ; from=from->next) {
dev_t devid;
for (from=statelist ; from ; from=from->next) {
dev_t devid;
- if (!check_donor(from, to, domlist))
+ if (!check_donor(from, to))
continue;
if (from->metadata->ss->external)
devid = container_choose_spare(
continue;
if (from->metadata->ss->external)
devid = container_choose_spare(