[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <871snrvu3r.fsf@dilma.collabora.co.uk>
Date: Fri, 01 Sep 2017 02:57:44 -0300
From: Gabriel Krisman Bertazi <krisman@...labora.co.uk>
To: tytso@....edu, adilger.kernel@...ger.ca
Cc: linux-ext4@...r.kernel.org
Subject: [RFC] Ext4 case insensitive proposal
As a follow-up on the discussions held in this list after Ted's proposal
on case-insensitive support for ext4 last year, I've implemented a my
version of it to learn my way through the ext4 code, and to get started
on the task. As my goal would be a slightly more complex approach, with
at least UTF-8 support for lookups, I'd like to hear from you about my
current implementation and the following proposal, as well as if there
is anyone currently working on anything like this, so we could
coordinate efforts.
Regarding the Unicode proposal (shivers), I am aware of Ben and
Olaf's proposal from 2014, and I plan to work on top of that to get it
updated and upstream.
Please, let me know your thoughts.
* Current Implementation
Simple learning experience to get the wheel spinning, based on Ted Ts'o
initial proposal back in 2016 [1]. It supports ASCII-case folding only
and doesn't rely on on-disk modifications.
Available at:
https://git.collabora.com/cgit/user/krisman/linux.git/log/?h=ext4-insensitive
- Implemented as a mount option, called ignorecase, which enables
insensitive lookups for the entire filesystem. A look-up will first
attempt the htree search for an exact-case match and if that fails,
fallback to a performing the expensive linear search.
- ASCII case-folding only.
- No on-disk format changes.
- If two files differ only by case, an exact-case lookup will return the
expected file. A non-exact-case lookup result will be unpredictable
as to which file is returned (depends on the order on-disk).
* Proposal
- Make insensitive lookups enabled on a per-directory basis via an
attribute.
- Support UTF-8 encoding in-kernel for case folding.
- sb will store the information required for unicode versioning and
encoding.
- Empty directories are optimized with an insensitive hash for htree
lookups.
- Fallback to linear searches on directories not optimized.
[1] https://www.spinics.net/lists/linux-ext4/msg54279.html
--
Gabriel Krisman Bertazi
Powered by blists - more mailing lists