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 +#include #include #include #include @@ -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);