From: Alasdair G Kergon <[email-masked]>

The snapshot chunk size must not exceed 512K or else bvec_alloc_bs()
will fail with 4K pages, and snapshot metadata needs to be usable
regardless of page size.

Signed-Off-By: Alasdair G Kergon <[email-masked]>
---

Index: linux-2.6.18-rc7/drivers/md/dm-snap.c
===================================================================
--- linux-2.6.18-rc7.orig/drivers/md/dm-snap.c	2006-10-13 17:10:21.000000000 +0100
+++ linux-2.6.18-rc7/drivers/md/dm-snap.c	2006-10-13 17:10:37.000000000 +0100
@@ -426,6 +426,13 @@ static int set_chunk_size(struct dm_snap
 		return -EINVAL;
 	}
 
+	/* Max chunk size determined by BIO_MAX_PAGES and smallest PAGE_SIZE */
+	if (chunk_size > 1024) {
+		ti->error = "Chunk size may not exceed 512K";
+		r = -EINVAL;
+		goto bad3;
+	}
+
 	s->chunk_size = chunk_size;
 	s->chunk_mask = chunk_size - 1;
 	s->chunk_shift = ffs(chunk_size) - 1;