Case-Insensitive ext2 filesystem for Linux 2.4

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

The ext2ci software creates a new "ext2ci" driver for Linux 2.4 based on the
ext2 driver. The ext2ci driver differs from ext2 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/ext2ci
cp ext2ci-sed-2.4.* linux/fs/ext2ci
cd linux/fs/ext2ci
./ext2ci-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 ext2 driver.

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



Some additional notes:

  The quotatools software does not recognize the ext2ci filesystem. If you
want to use quotas with ext2ci, apply ext2ci.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.ext2 /sbin/fsck.ext2ci" to make
this work.  

