Make sure a newly joining node has the correct number of copies.

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

---
 sheep/group.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

Index: sheepdog/sheep/group.c
===================================================================
--- sheepdog.orig/sheep/group.c	2012-07-18 09:54:10.000000000 +0200
+++ sheepdog/sheep/group.c	2012-07-18 09:56:07.170032295 +0200
@@ -487,6 +487,12 @@ static int cluster_sanity_check(struct j
 {
 	uint64_t local_ctime = get_cluster_ctime();
 	uint32_t local_epoch = get_latest_epoch();
+	uint8_t local_nr_copies;
+
+	if (get_cluster_copies(&local_nr_copies)) {
+		eprintf("failed to get nr_copies\n");
+		return CJ_RES_FAIL;
+	}
 
 	if (jm->ctime != local_ctime) {
 		eprintf("joining node ctime doesn't match: %"
@@ -502,6 +508,12 @@ static int cluster_sanity_check(struct j
 		return CJ_RES_FAIL;
 	}
 
+	if (jm->nr_copies != local_nr_copies) {
+		eprintf("joining node nr_copies doesn't match: %u vs %u\n",
+			jm->nr_copies, local_nr_copies);
+		return CJ_RES_FAIL;
+	}
+
 	return CJ_RES_SUCCESS;
 }
 


