On 07/10/2013 05:42 AM, Kevin Wolf wrote: >> Thanks for the series. I made a few comments on each patch. You hashed >> windows full path to get the "inode", but case sensitively, would that >> work with the same files of different case? > > I seem to remember that Windows can be made case-sensitive. In this > case, we must not ignore case. Not detecting some loops is okay (but here > we would in fact detect it in the second iteration), rejecting valid > configurations is not.
Indeed, Windows can be made case-sensitive. But you still want to hash case-insensitive, and just be careful to not report collisions until after checking inode equality. For that matter, stat() on windows is notoriously lame (such as returning 0 for st_ino on FAT, regardless of file). While I've compiled on windows, it has generally been on cygwin (where they go to great lengths to give a sane stat() in spite of FAT's shortcomings); you may want to get a review from someone more intimately acquainted with mingw (Paolo?), in case there is no way to make inode equality work, and where you may be better off with absolute path name comparison. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature