1. 07 Oct, 2008 2 commits
    • Steve French's avatar
      [CIFS] make sure we have the right resume info before calling CIFSFindNext · 0752f152
      Steve French authored
      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: default avatarJeff Layton <jlayton@redhat.com>
      CC: Stable <stable@kernel.org>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      0752f152
    • Steve French's avatar
      [CIFS] clean up error handling in cifs_unlink · 6050247d
      Steve French authored
      Currently, if a standard delete fails and we end up getting -EACCES
      we try to clear ATTR_READONLY and try the delete again. If that
      then fails with -ETXTBSY then we try a rename_pending_delete. We
      aren't handling other errors appropriately though.
      
      Another client could have deleted the file in the meantime and
      we get back -ENOENT, for instance. In that case we wouldn't do a
      d_drop. Instead of retrying in a separate call, simply goto the
      original call and use the error handling from that.
      
      Also, we weren't properly undoing any attribute changes that
      were done before returning an error back to the caller.
      
      CC: Jeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      6050247d
  2. 06 Oct, 2008 1 commit
  3. 24 Sep, 2008 6 commits
  4. 23 Sep, 2008 6 commits
  5. 22 Sep, 2008 1 commit
  6. 16 Sep, 2008 2 commits
  7. 13 Sep, 2008 22 commits