Let the persistent/non persistent arg to the snapshot constructor
be case insensitive. [Heinz Mauelshagen]
--- diff/drivers/md/dm-snapshot.c	2002-11-11 10:56:12.000000000 +0000
+++ source/drivers/md/dm-snapshot.c	2002-12-02 10:38:54.000000000 +0000
@@ -7,6 +7,7 @@
  */
 
 #include <linux/config.h>
+#include <linux/ctype.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/slab.h>
@@ -398,7 +399,7 @@
 	struct dm_snapshot *s;
 	unsigned long chunk_size;
 	int r = -EINVAL;
-	char *persistent;
+	char persistent;
 	char *origin_path;
 	char *cow_path;
 	char *value;
@@ -412,9 +413,9 @@
 
 	origin_path = argv[0];
 	cow_path = argv[1];
-	persistent = argv[2];
+	persistent = toupper(*argv[2]);
 
-	if ((*persistent & 0x5f) != 'P' && (*persistent & 0x5f) != 'N') {
+	if (persistent != 'P' || persistent != 'N') {
 		ti->error = "Persistent flag is not P or N";
 		r = -EINVAL;
 		goto bad;
@@ -479,7 +480,7 @@
 
 	s->chunk_size = chunk_size;
 	s->chunk_mask = chunk_size - 1;
-	s->type = *persistent;
+	s->type = persistent;
 	for (s->chunk_shift = 0; chunk_size;
 	     s->chunk_shift++, chunk_size >>= 1)
 		;
@@ -503,7 +504,7 @@
 	 */
 	s->store.snap = s;
 
-	if ((*persistent & 0x5f) == 'P')
+	if (persistent  == 'P')
 		r = dm_create_persistent(&s->store, s->chunk_size);
 	else
 		r = dm_create_transient(&s->store, s, blocksize);