On Wed, Jan 15, 2014 at 09:54:02AM -0600, Eric Sandeen wrote:
> On 1/15/14, 12:37 AM, Dave Chinner wrote:
> > On Tue, Jan 14, 2014 at 09:30:57PM -0800, Zachary Kotlarek wrote:
> >> On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> >>> It's called *ASCII* Case Insensitivity for a reason: it doesn't
> >>> support anything other than ASCII. So your usage is not actually
> >>> supported at all, hence it's no surprise that it has caused
> >>> breakage.
> >> Okay. Thanks for the explanation.
> >> FWIW, I read âASCII-only case-insensitiveâ to mean âonly case-insensitive
> >> for ASCIIâ as in Ã and Ã would not match each other. If it actually means
> >> âanything other than ASCII is subject to complete breakageâ a more nuanced
> >> explanation in the man page might be desirable.
> > Sure. Can you write a patch to add explanation that explain the
> > problem you've had?
> >> I donât suppose thereâs any way to disable that setting short of creating
> >> a new file system?
> > Not officially. Changing it means you have to change every single
> > hash for every directory entry. I *think* that you could probably do
> > it with a bit of xfs_db magic and and xfs_repair pass.
> > First, A warning, some advice and a disclaimer: back up anything you
> > don't want to lose, because if this screws up it'll trash the
> > directory structure and you may *LOSE* *ALL* *YOUR* *DATA*. This is
> > dangerous, not recommended and I take no responsibility for what
> > happens if you try it and it fails.
> > After taking a backup, use xfs_metadump to set up for a
> > non-destructive trial run. take a copy of the filesystem metadata
> > using xfs_metadump:
> > # xfs_metadump <dev> scratch.metadump
> NB: You'll want to add the "-o" option to not obfuscate filenames, or
> you'll probably have no idea if Dave's later steps are working or not.
> (I haven't read the whole thread, but is there no way for ascii-ci mode
> to reject non-ascii names in the first place? This seems like quite
> the pitfall.)
The utf-8 patches add a "is this valid utf-8" check to all the
operations that care. We could probably do that for the ASCII-CI
stuff if you can define what ASCII means....