Make ->readpages palatable to NFS
Subsystems (8)
PATCH 1/1 Make ->readpages palatable to NFS
The following patch makes the ->readpages() address_space_operation take a struct file argument just like ->readpage().
Cheers,
Trond
fs/ext2/inode.c +1 -1
@@ -599,7 +599,7 @@ }static int -ext2_readpages (struct address_space *mapping, +ext2_readpages (struct file *file,struct address_space *mapping,struct list_head *pages,unsigned nr_pages) {return mpage_readpages (mapping, pages, nr_pages, ext2_get_block);
fs/ext3/inode.c +1 -1
@@ -1385,7 +1385,7 @@ }static int -ext3_readpages (struct address_space *mapping, +ext3_readpages (struct file *file,struct address_space *mapping,struct list_head *pages,unsigned nr_pages) {return mpage_readpages (mapping, pages, nr_pages, ext3_get_block);
fs/jfs/inode.c +1 -1
@@ -293,7 +293,7 @@return mpage_readpage (page, jfs_get_block); } -static int jfs_readpages (struct address_space *mapping, +static int jfs_readpages (struct file *file,struct address_space *mapping,struct list_head *pages,unsigned nr_pages) {return mpage_readpages (mapping, pages, nr_pages, jfs_get_block);
fs/xfs/linux/xfs_aops.c +1 -0
@@ -644,6 +644,7 @@ STATIC intlinvfs_readpages ( +struct file *unused,struct address_space *mapping,struct list_head *pages,unsigned nr_pages)
include/linux/fs.h +1 -1
@@ -297,7 +297,7 @@/* Set a page dirty */ int (*set_page_dirty)(struct page *page); -int (*readpages)(struct address_space *mapping, +int (*readpages)(struct file *filp,struct address_space *mapping,struct list_head *pages,unsigned nr_pages);/*
mm/readahead.c +1 -1
@@ -52,7 +52,7 @@pagevec_init (&lru_pvec,0 );if (mapping->a_ops->readpages) -return mapping->a_ops->readpages (mapping, pages, nr_pages); +return mapping->a_ops->readpages (filp, mapping, pages, nr_pages);for (page_idx =0 ; page_idx < nr_pages; page_idx++) { struct page *page = list_entry(pages->prev, struct page, list);