On Fri, May 02, 2008 at 02:14:56PM +1000, Barry Naujok wrote: > As some of you know, I've been working on CI support for XFS. > Currently, the Linux VFS does not make this very easy and neat. > > One issue I've encountered is the case of rename in a CI > filesystem where the destination is the same as the source > (both parent and child) differing only in case. > > So, currently, do_rename() calls do_path_lookup() which > gets the source and destination dentries, etc. The third > parameter, flags, is stored in the nameidata structure > which is passed to the filesystem implementations of > lookup. > > vfs_rename() checks to see if the two dentry inodes are > the same, and if so, just returns 0. > > I propose adding a 7th LOOKUP_xxx flag for the rename case > where we indicate we are after an exact (non-CI) match for > the destination name in the lookup call in do_rename. > > Filesystem support in lookup would check for this flag > in addition to LOOKUP_CONTINUE not existing (ie. at the > last component during lookup) and if so, do an exact > lookup rather than a CI lookup as it normally would do. > Traditional non-CI filesystems would ignore this flag. I think passing a flag to the filesystem for this is fine, but flag in nameidata won't do it since lookup is going to lose the nameidata argument soon. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html