Let the persistent/non persistent arg to the snapshot constructor
be case insensitive. [Heinz Mauelshagen]
--- diff/drivers/md/dm-snapshot.c 2002-11-29 09:45:08.000000000 +0000
+++ source/drivers/md/dm-snapshot.c 2002-12-04 15:35:23.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);