On May 20, 2015, at 3:09 PM, Matteo Bruni matteo.mystral@gmail.com wrote:
2015-05-20 21:44 GMT+02:00 Ken Thomases ken@codeweavers.com:
Good point. I can add a check for the case-sensitivity of the file system.
Yeah, that's a possibility. My thought was that it might be better to simply fallback to the other methods in that case instead of adding another syscall (you can see that as an optimization for the default case-insensitive filesystems at the price of worse performance on case-sensitive FSs). I'm just speculating though. Either is fine to me, your call.
Falling back to the other methods seems to be invariably worse than just checking in read_directory_getattrlist(). For example, read_directory_stat() has the same problem, so it (now) requires a call to get_dir_case_sensitivity(), anyway, plus the call to stat().
I suppose there may be some room for optimization by extracting the part of get_dir_case_sensitivity_attr() after the lookup of ATTR_CMN_DEVID and ATTR_CMN_FSID to a separate function. Then, we can look up those attributes as part of the primary getattrlist() call in read_directory_getattrlist() and avoid having to do another call to get them for checking case sensitivity.
BTW thank you for fixing those bugs!
You're welcome. Thanks for doing the initial work that I was too lazy to do. ;)
-Ken