[sheepdog] [PATCH] sheep: always return CJ_RES_JOIN_LATER for a too small epoch

Christoph Hellwig hch at infradead.org
Wed Jul 11 09:02:22 CEST 2012


Without this we can hit a race where a node can be added to both the
failed and delayed node list, and thus hit the assert in add_delayed_node().

Signed-off-by: Christoph Hellwig <hch at lst.de>

diff --git a/sheep/group.c b/sheep/group.c
index 00b04c2..da567fe 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -534,10 +534,6 @@ static int cluster_wait_for_join_check(struct sd_node *joined,
 		eprintf("joining node epoch too small: %"
 			PRIu32 " vs %" PRIu32 "\n",
 			epoch, local_epoch);
-
-		if (bsearch(joined, local_entries, nr_local_entries,
-			    sizeof(struct sd_node), node_id_cmp))
-			return CJ_RES_FAIL;
 		return CJ_RES_JOIN_LATER;
 	}
 



More information about the sheepdog mailing list