@ -1931,8 +1931,7 @@ int cifs_file_mmap(struct file *file, struct vm_area_struct *vma)
static void cifs_copy_cache_pages ( struct address_space * mapping ,
struct list_head * pages , int bytes_read , char * data ,
struct pagevec * plru_pvec )
struct list_head * pages , int bytes_read , char * data )
{
struct page * page ;
char * target ;
@ -1944,7 +1943,7 @@ static void cifs_copy_cache_pages(struct address_space *mapping,
page = list_entry ( pages - > prev , struct page , lru ) ;
list_del ( & page - > lru ) ;
if ( add_to_page_cache ( page , mapping , page - > index ,
if ( add_to_page_cache_lru ( page , mapping , page - > index ,
GFP_KERNEL ) ) {
page_cache_release ( page ) ;
cFYI ( 1 , ( " Add page cache failed " ) ) ;
@ -1970,8 +1969,6 @@ static void cifs_copy_cache_pages(struct address_space *mapping,
flush_dcache_page ( page ) ;
SetPageUptodate ( page ) ;
unlock_page ( page ) ;
if ( ! pagevec_add ( plru_pvec , page ) )
__pagevec_lru_add_file ( plru_pvec ) ;
data + = PAGE_CACHE_SIZE ;
}
return ;
@ -1990,7 +1987,6 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
unsigned int read_size , i ;
char * smb_read_data = NULL ;
struct smb_com_read_rsp * pSMBr ;
struct pagevec lru_pvec ;
struct cifsFileInfo * open_file ;
int buf_type = CIFS_NO_BUFFER ;
@ -2004,7 +2000,6 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
cifs_sb = CIFS_SB ( file - > f_path . dentry - > d_sb ) ;
pTcon = cifs_sb - > tcon ;
pagevec_init ( & lru_pvec , 0 ) ;
cFYI ( DBG2 , ( " rpages: num pages %d " , num_pages ) ) ;
for ( i = 0 ; i < num_pages ; ) {
unsigned contig_pages ;
@ -2073,7 +2068,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
pSMBr = ( struct smb_com_read_rsp * ) smb_read_data ;
cifs_copy_cache_pages ( mapping , page_list , bytes_read ,
smb_read_data + 4 /* RFC1001 hdr */ +
le16_to_cpu ( pSMBr - > DataOffset ) , & lru_pvec ) ;
le16_to_cpu ( pSMBr - > DataOffset ) ) ;
i + = bytes_read > > PAGE_CACHE_SHIFT ;
cifs_stats_bytes_read ( pTcon , bytes_read ) ;
@ -2106,8 +2101,6 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
bytes_read = 0 ;
}
pagevec_lru_add_file ( & lru_pvec ) ;
/* need to free smb_read_data buf before exit */
if ( smb_read_data ) {
if ( buf_type = = CIFS_SMALL_BUFFER )