Missing files on FindFirst

Steven French sfrench at us.ibm.com
Wed Mar 12 06:40:12 GMT 2003





Missing file on ls to Windows XP ...

I was testing a new drop of my CIFS vfs  client code (version 0.7.0) today
and noticed something interesting .... sometimes missing one file between
FindNext responses.

So file.55 was not returned in the transact two responses but file.54 was
(it ends the first response) and file.56 begins the next.   The "server"
was Windows XP.   file.55 is visible via QPathInfo though and is definitely
on disk.   Looks like Windows XP has a similar buffer rounding problem
(sans resume keys) as we had noticed that showed up using smbfs if a search
buffer returned by HPFS386 to smbfs was exactly the right size (within a 3
byte range in which OS/2 HPFS386 seemed to get partway through putting the
last entry in a search response which didn't quite fit in the buffer and
then gave up on that entry, and for the next FindNext response started one
entry off).  The obvious reasons, attributes, access control etc. do not
appear to be the issue.

I guess this means that I change to really use Resume Keys in the cifs vfs
client for T2 FindNext ... ugh

I really need to rewrite this routine (cifs_readdir) anyway - now I have
two reasons (i.e. besides handling a few obscure search rewind cases
better).    Maybe this will also fix the problem with Windows XP only
returning one buffer worth on Trans2 FFirst on one particular very large
directory on the same system.   I have never seen this problem with Samba
and Windows 2000 servers even with the same test.

Steve French
Senior Software Engineer
Linux Technology Center - IBM Austin
phone: 512-838-2294
email: sfrench at us.ibm.com



More information about the samba-technical mailing list