[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#333776: linux-2.6: vfat driver in 2.6.12 is not properly case-insensitive



Ogawa-san,

I'm bringing this to you attention because a) I'm not sure who to ask
and b) I'm not sure what the correct behaviour is.

When a vfat filesystem is mounted isocharset=iso8859-1, then the
following works:

touch a.txt
ls A.txt

But when it is mounted isocharset=utf8, then ls complains, file not
found:

touch a.txt
ls A.txt

That is, in utf8, a =! A on vfat, and thus its not case insensitive
as one might expect.

I took a quick look in fs/nls/nls_utf8.c and I see that this is
intentional.

static struct nls_table table = {
        .charset        = "utf8",
        .uni2char       = uni2char,
        .char2uni       = char2uni,
        .charset2lower  = identity,     /* no conversion */
        .charset2upper  = identity,
        .owner          = THIS_MODULE,
};

I guess it is charset2lower or charset2upper that vfat is calling,
which make no conversion, thus leading to the problem I outlined above.

My question is: Is this behaviour correct, or is it a bug?

-- 
Horms



Reply to: