]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/cifs/file.c
/spare/repo/netdev-2.6 branch 'ieee80211'
[linux-2.6-omap-h63xx.git] / fs / cifs / file.c
index 1df26ddf68b1534f0602f5b8c2bca870814c4ca7..30ab70ce554716df92739f0b1643ce79053497e7 100644 (file)
@@ -512,7 +512,8 @@ int cifs_closedir(struct inode *inode, struct file *file)
                pTcon = cifs_sb->tcon;
 
                cFYI(1, ("Freeing private data in close dir"));
-               if (pCFileStruct->srch_inf.endOfSearch == FALSE) {
+               if ((pCFileStruct->srch_inf.endOfSearch == FALSE) &&
+                  (pCFileStruct->invalidHandle == FALSE)) {
                        pCFileStruct->invalidHandle = TRUE;
                        rc = CIFSFindClose(xid, pTcon, pCFileStruct->netfid);
                        cFYI(1, ("Closing uncompleted readdir with rc %d",
@@ -1351,6 +1352,8 @@ static void cifs_copy_cache_pages(struct address_space *mapping,
                                      GFP_KERNEL)) {
                        page_cache_release(page);
                        cFYI(1, ("Add page cache failed"));
+                       data += PAGE_CACHE_SIZE;
+                       bytes_read -= PAGE_CACHE_SIZE;
                        continue;
                }