http://bugs.winehq.org/show_bug.cgi?id=7216
--- Comment #13 from Dan Kegel dank@kegel.com 2008-07-20 00:02:27 --- The commands strace -f -o strace.log wine picasa2.exe egrep 'inotify|open.*My Documents/" strace.log seem to show that an inotify watch is only added for the top-level directory;
8750 open("/home/demouser/.wine/dosdevices/c:/windows/profiles/demouser/My Documents/", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 98 ... 8750 inotify_init() = 113 8750 inotify_add_watch(113, "/proc/self/fd/98", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF) = 1 8750 inotify_rm_watch(113, 1) = 0
Since it contained multiple subdirectories, wine should have converted the first ReadDirectoryChanges() call into a series of inotify_add_watch() calls, one for each subdirectory. I looked at server/change.c, and while it talks about recursive watches, I don't see read_directory_changes actually doing a tree walk of subdirectories...?