[sheepdog] [PATCH 1/3] sheep: delete useless get_vdi_bitmap_from_sd_list()

Yunkai Zhang yunkai.me at gmail.com
Wed May 16 11:04:44 CEST 2012


From: Yunkai Zhang <qiushu.zyk at taobao.com>

I have tested this patch with corosync/zookeeper dirver, it works well.
-------------------------------------------------------------------- >8

In __sd_join(), get_vdi_bitmap_from_sd_list() do a lot of duplicated
works with following for loop as w->member_list contains all nodes in
sys->nodes.

So we can drop get_vdi_bitmap_from_sd_list() safely, it can make
__sd_join() looks more cleanly.

Signed-off-by: Yunkai Zhang <qiushu.zyk at taobao.com>
---
 sheep/group.c |   29 ++++++++++-------------------
 1 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/sheep/group.c b/sheep/group.c
index 54bd8f3..a5311fc 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -515,15 +515,6 @@ out:
 	return ret;
 }
 
-static void get_vdi_bitmap_from_sd_list(void)
-{
-	int i;
-	/* fixme: we need this until starting up. */
-
-	for (i = 0; i < sys->nr_nodes; i++)
-		get_vdi_bitmap_from(sys->nodes + i);
-}
-
 static void finish_join(struct join_message *msg, struct sd_node *joined,
 		struct sd_node *nodes, size_t nr_nodes)
 {
@@ -723,16 +714,16 @@ static void __sd_join(struct event_struct *cevent)
 	if (sys_stat_ok())
 		return;
 
-	/*
-	* If a new comer try to join the running cluster, it only need read
-	* one copy of bitmap from the first member.
-	*/
-	if (sys_stat_wait_format())
-		get_vdi_bitmap_from(w->member_list);
-	else {
-		get_vdi_bitmap_from_sd_list();
-		for (i = 0; i < w->member_list_entries; i++)
-			get_vdi_bitmap_from(w->member_list + i);
+	for (i = 0; i < w->member_list_entries; i++) {
+
+		get_vdi_bitmap_from(w->member_list + i);
+
+		/*
+		 * If a new comer try to join the running cluster, it only
+		 * need read one copy of bitmap from the first member.
+		 */
+		if (sys_stat_wait_format())
+			break;
 	}
 }
 
-- 
1.7.7.6




More information about the sheepdog mailing list