]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
CIFS: make sure we have the right resume info before calling CIFSFindNext
authorSteve French <sfrench@us.ibm.com>
Sat, 11 Oct 2008 16:55:11 +0000 (16:55 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 18 Oct 2008 17:49:11 +0000 (10:49 -0700)
commit92fa67e9260a65f69d868c4fcc92c9cee428c6f9
tree6c88d6f85f2ec7cf1f18851866441f1036fb8304
parent074555fe0e36c1bde7795e8f3f7350d228b9dd1c
CIFS: make sure we have the right resume info before calling CIFSFindNext

commit 0752f1522a9120f731232919f7ad904e9e22b8ce upstream

When we do a seekdir() or equivalent, we usually end up doing a
FindFirst call and then call FindNext until we get to the offset that we
want. The problem is that when we call FindNext, the code usually
doesn't have the proper info (mostly, the filename of the entry from the
last search) to resume the search.

Add a "last_entry" field to the cifs_search_info that points to the last
entry in the search. We calculate this pointer by using the
LastNameOffset field from the search parms that are returned. We then
use that info to do a cifs_save_resume_key before we call CIFSFindNext.

This patch allows CIFS to reliably pass the "telldir" connectathon test.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/cifs/cifsglob.h
fs/cifs/cifssmb.c
fs/cifs/readdir.c