public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/2] Case-insensitive filename lookup for XFS
@ 2007-10-23  7:53 Barry Naujok
  2007-10-23 10:01 ` Anton Altaparmakov
  2007-10-23 12:22 ` Martin Steigerwald
  0 siblings, 2 replies; 9+ messages in thread
From: Barry Naujok @ 2007-10-23  7:53 UTC (permalink / raw)
  To: xfs@oss.sgi.com, xfs-dev, linux-fsdevel@vger.kernel.org


Following is the initial test version of case-insensitive support
for XFS in Linux. It implements case-insensitivity utilising a
Unicode case folding table stored on disk generated from
http://www.unicode.org/Public/UNIDATA/CaseFolding.txt

As the filesystem stores names as Unicode (UTF-8), the "nls"
mount option has been added to support systems not utilising
UTF-8 natively. If the nls mount option is not used, it will
use the default NLS defined in the kernel's config.

To allow case-insensitivity to be a mount option rather than
a mkfs option, the hashes stored on disk are always case-folded.
This is indicated by the new "unicode" bit in the superblock.
This bit also associated with the presence of the case-folding
table on disk.

With the case-folding table on disk, it allows us to upgrade
the table in the future while retaining backwards and forwards
compatibility. It also allows special case tables such as
Turkic case which is supported in this patch set.

The case-insensitive support also installs a couple of
dentry_operations for the XFS inodes: hash and compare.

Currently, there is a couple of outstanding issues with the
dentry cache interaction:

   - The first lookup if case-mismatched will continue to
     have the mismatched case in the cache. Not really sure
     if this is an issue or not. If it is an issue, how
     should I resolve it?

   - As above, but with a non-existing lookup, then creating
     the file with a different case, the first failed lookup
     will define the case used. I have partially resolved
     this with a memcpy if the two lengths are the same.
     How do I fix this if the lengths are different?
     (TODO's show the location of this problem.)

Other TODOs:

   - support for case-insensitve extended attributes
     as a separate mount option.

   - Other xfsprogs updates: xfs_repair, xfs_db

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-10-24 15:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-23  7:53 [RFC 0/2] Case-insensitive filename lookup for XFS Barry Naujok
2007-10-23 10:01 ` Anton Altaparmakov
2007-10-23 10:07   ` Anton Altaparmakov
2007-10-24  7:39     ` Barry Naujok
2007-10-24 15:05       ` Anton Altaparmakov
2007-10-23 12:22 ` Martin Steigerwald
2007-10-24  0:34   ` Barry Naujok
2007-10-24  8:32     ` Martin Steigerwald
2007-10-24  8:41     ` Olaf Frączyk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox