On 2010-06-18 16:26, Erik Faye-Lund wrote: > 2010/6/18 Török Edwin <edwintorok@xxxxxxxxx>: >> On 06/18/2010 03:29 PM, Erik Faye-Lund wrote: >>> 2010/6/18 Török Edwin <edwintorok@xxxxxxxxx>: >>>> readdir() used to do a single pass, which is not always enough. >>>> If you unlink some files/rmdir some subdirs then there might be some >>>> files you haven't seen yet *before* the readdir cursor (files get rearranged >>>> in the directory, etc.). >>>> >>>> The fix is to do an additional readdir() pass if we unlinked/rmdired something. >>>> This is easily accomplished by using rewinddir. >>>> >>> >>> Won't this break on Windows? mingw_readdir() doesn't seem to have a >>> maching mingw_rewinddir() in compat/mingw.c/h.... >>> >> >> rewinddir() is used in ClamAV too, and it builds natively on win32. >> I think we have some compat function that map rewinddir to the Win32 >> API, somebody will probably have to do that for git too. >> > > There's a rewinddir function in msvcrt.dll. However, we're not using > msvcrt.dll's opendir() implementation for performance reasons, so this > patch would require a rewinddir implementation as a preparation path, > no? If such a patch could be extracted from ClamAV (and ClamAV is > license compatible with git ClamAV is GPLv2 only. git is the same AFAICT, so it should be fine. >), would you mind including such a patch > for the next round? Will try to do that later today. > >> Another possibility is to do closedir/opendir again on mingw. > > Yes. Yet another possibility is to enable the > NO_MINGW_REPLACE_READDIR-switch, but this has negative performance > effects... > I'd rather not do that. Best regards, --Edwin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html