[PATCH] Monitor: Check destination array domain early.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From 868faba9b94b8278c93f9f8026b05fb698212207 Mon Sep 17 00:00:00 2001
From: Marcin Labun <marcin.labun@xxxxxxxxx>
Date: Thu, 16 Dec 2010 15:16:12 +0100
Subject: [PATCH] Monitor: Check destination array domain early.

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@xxxxxxxxx>
---
 Monitor.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/Monitor.c b/Monitor.c
index ce160f3..e79f658 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -767,8 +767,7 @@ static int move_spare(struct state *from, struct state *to,
 	return 0;
 }
 
-static int check_donor(struct state *from, struct state *to,
-		       struct domainlist *domlist)
+static int check_donor(struct state *from, struct state *to)
 {
 	struct state *sub;
 
@@ -790,8 +789,6 @@ static int check_donor(struct state *from, struct state *to,
 			return 0;
 	if (from->spare <= 0)
 		return 0;
-	if (domlist == NULL)
-		return 0;
 	return 1;
 }
 
@@ -923,10 +920,15 @@ static void try_spare_migration(struct state *statelist, struct alert_info *info
 							   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;
-				if (!check_donor(from, to, domlist))
+				if (!check_donor(from, to))
 					continue;
 				if (from->metadata->ss->external)
 					devid = container_choose_spare(
-- 
1.6.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux