Re: kernel 2.6.4: Bug in JFS file system?

From: Dave Kleikamp
Date: Wed Mar 24 2004 - 08:47:24 EST


On Tue, 2004-03-23 at 12:55, Andreas Theofilu wrote:
> Hi to all,
>
> Since kernel 2.6.4 I'm not able to access files with a special character
> in the file name, such as the german umlaute. Every attempt to access such
> a file gives me the error: cannot stat file

I did this to you. I changed jfs's default character translation
behavior. jfs stores the file names in ucs-16. It had used the
character set defined by CONFIG_NLS_DEFAULT to determine how to
translate to or from ucs-16. This can be overridden with the iocharset=
mount option.

After many complaints about characters that were being rejected by jfs,
and after getting as much feedback as I was able to obtain, I changed
the default behavior so that no translation is done. Each byte of the
file name is now stored in the lower byte of the ucs-16 character.
(This is equivalent to iocharset=iso8859-1, which is the default value
of CONFIG_NLS_DEFAULT.)

Unfortunately, existing files with a non-zero high byte in a character
are no longer accessible. jfs should have printed a syslog message
recommending that the file system be mounted with iocharset=utf8 to
access the file.

> I'm using several partitions with JFS file system and had never seen such
> a strange behavior before. The relevant kernel settings are at the bottom
> of the mail.
>
> I already unmounted the partition and run fsck on it (fsck.jfs -f
> /dev/hda8), but it told me that everything is ok and I'm still not able to
> access this files. Also a reboot of the machine didn't change anything. I
> booted 2.6.3 again and renamed the files in question (no more special
> characters in the file name). Now I can access these files with 2.6.4
> also.

Another alternative would have been to mount the filesystem with "-o
iocharset=<charset>" where <charset> is the value of
CONFIG_NLS_DEFAULT. To make that behavior permanent, you can add the
iocharset= flag to /etc/fstab.

> Although I'm a programmer, I'm not a kernel hacker and don't know where
> to start looking for this problem. Could anybody give me a hint where to
> start looking?

I'm sorry this caused you problems. I knew making this change would
cause some confusion, but I think in the long run, jfs is better off
with a more predictable default behavior.

--
David Kleikamp
IBM Linux Technology Center

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/