Case-Insensitive ext3 filesystem for Linux 2.4

Written by William Herrin, 10/2003
Released to the public domain.

The ext3ci software creates a new "ext3ci" driver for Linux 2.4 based on the
ext3 driver. The ext3ci driver differs from ext3 in that it is Case
Insensitive. That is, a=A, b=B and so forth. This is known to work with
Linux 2.4.22, but should work with any 2.4 series kernel. The code itself
will work with a Linux 2.2 kernel, but the install script will not. 

Why: Your Windows customers have a hard enough time figuring out how to use
FTP to upload files to the web server. Introducing them to the idea that "a"
is as different from "A" as it is from "Z" is asking for trouble. Why not
eliminate the problem at the source?


To use the driver in your source tree:

mkdir linux/fs/ext3ci
cp ext3ci-sed-2.4.* linux/fs/ext3ci
cd linux/fs/ext3ci
./ext3ci-sed-2.4.sh
cd ../..
make menuconfig

Under Filesystems, enable both "Second extended fs support" and
"Case Insensitive Ext2 fs support" as compiled-in modules. Then, compile the
kernel the usual way.

Note: This code has not been tested as a module, and probably won't work that
way due to unresolved dependencies on the ext3 driver.

To use the driver, create a normal ext3 filesystem and:
mount -t ext3ci /dev/hda1 /mnt

In /etc/fstab, simply replace "ext3" with "ext3ci".


Some additional notes:

  The quotatools software does not recognize the ext3ci filesystem. If you
want to use quotas with ext3ci, apply ext3ci.quotapatch to your quotatools
software and recompile it.

  I don't know how it is on other Linux distributions, but Debian expects to
find files named "/sbin/fsck.filesystem" in order to perform checks against
filesystems in /etc/fstab. Use "ln -s fsck.ext3 /sbin/fsck.ext3ci" to make
this work.  

