Skip to contentSkip to conversation

Changing a file system from case sensitive to case insensitive...

DISCUSSION Linda A. Walsh 2 participants 5 messages Aug 24, 2009

lore
Share & tools
lore
#0 lore raw

I don't suppose this is possible after the file system is already up and running?

Or...could be made possible?

Doesn't seem like an impossible problem on file systems that have few or no collisions...

Is it possible or doable or just easy and I don't know about it?

Thanks...
-linda

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#2 lore raw
Quoted 1 line · Christoph Hellwig

It's not theoretically impossible, but not implemented right now.

----
How difficult -- would it just be changing a flag
in the super, in the simple case -- i.e. with the result that a user could lose access to any files of alternate cases?

I know it's not what's there now, but there is a nice search
option in 'Gvim', 'smartcase', where if you use a lower case search string, it finds strings of either case, but if you explicitly have any letter capitalized, then it forces a case sensitive search.

That could be a recovery mechanism for conflicts, but would
likely involve more work...

-l

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#3 lore raw
Quoted 8 lines · Linda A. Walsh
Quoted 1 line · Christoph Hellwig

It's not theoretically impossible, but not implemented right now.

----
How difficult -- would it just be changing a flag
in the super, in the simple case -- i.e. with the result that a user could lose access to any files of alternate cases?

The CI flag relaly only hcanges on thing in the on disk format, and that is the hash used for calculating the directory b+tree indices. So what you need to do is the following algorithm

foreach diretory {
read the whole directory structure into memory rewrite the btree with the case insensitive hash
}

handling of conflicts would be a pretty natural fallout of this, by checking for hash conflicts with the new case-sensitive flag.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#4 lore raw
Quoted 4 lines · Christoph Hellwig

foreach diretory {
read the whole directory structure into memory rewrite the btree with the case insensitive hash
}

---
Looks like a trivial shell script...;^)...

I'm sure there's a bash-app for that...

*sigh*

And here I thought it was as simple as setting a flag on disk.

Sounds like the implementation lends itself to having an extended-attr
to potentially set the option on a dir-by-dir basis similar to the +d bit, though it would only apply to dirs and files within -- but not subdirs (due to different mount locations)?

That might certainly be more flexible than a whole disk as well if it is practical.

Then as the 'attr' was set, the hash could be rebuilt either inplace, or created as a newdir with files being moved to the new dir.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs