[RFC PATCH 22/79] fs: add struct inode to block_read_full_page() arguments

From: jglisse
Date: Wed Apr 04 2018 - 15:29:56 EST


From: JÃrÃme Glisse <jglisse@xxxxxxxxxx>

Add struct inode to block_read_full_page(). Note this patch only add
arguments and modify call site conservatily using page->mapping and
thus the end result is as before this patch.

One step toward dropping reliance on page->mapping.

Signed-off-by: JÃrÃme Glisse <jglisse@xxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Josef Bacik <jbacik@xxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Cc: Jeff Layton <jlayton@xxxxxxxxxx>
---
fs/adfs/inode.c | 2 +-
fs/affs/file.c | 2 +-
fs/befs/linuxvfs.c | 3 ++-
fs/bfs/file.c | 2 +-
fs/block_dev.c | 2 +-
fs/buffer.c | 4 ++--
fs/efs/inode.c | 2 +-
fs/ext4/readpage.c | 3 ++-
fs/freevxfs/vxfs_subr.c | 2 +-
fs/hfs/inode.c | 2 +-
fs/hfsplus/inode.c | 3 ++-
fs/minix/inode.c | 2 +-
fs/mpage.c | 2 +-
fs/ocfs2/aops.c | 3 ++-
fs/ocfs2/refcounttree.c | 3 ++-
fs/omfs/file.c | 2 +-
fs/qnx4/inode.c | 2 +-
fs/reiserfs/inode.c | 3 ++-
fs/sysv/itree.c | 2 +-
fs/ufs/inode.c | 3 ++-
include/linux/buffer_head.h | 2 +-
21 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/fs/adfs/inode.c b/fs/adfs/inode.c
index 1100d5da84d0..2270ab3d5392 100644
--- a/fs/adfs/inode.c
+++ b/fs/adfs/inode.c
@@ -45,7 +45,7 @@ static int adfs_writepage(struct address_space *mapping, struct page *page,
static int adfs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, adfs_get_block);
+ return block_read_full_page(page->mapping->host, page, adfs_get_block);
}

static void adfs_write_failed(struct address_space *mapping, loff_t to)
diff --git a/fs/affs/file.c b/fs/affs/file.c
index 55ab72c1b228..136cb90f332f 100644
--- a/fs/affs/file.c
+++ b/fs/affs/file.c
@@ -379,7 +379,7 @@ static int affs_writepage(struct address_space *mapping, struct page *page,
static int affs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, affs_get_block);
+ return block_read_full_page(page->mapping->host, page, affs_get_block);
}

static void affs_write_failed(struct address_space *mapping, loff_t to)
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index f6844b4ae77f..4436123674d3 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -112,7 +112,8 @@ static int
befs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, befs_get_block);
+ return block_read_full_page(page->mapping->host, page,
+ befs_get_block);
}

static sector_t
diff --git a/fs/bfs/file.c b/fs/bfs/file.c
index 1c4593429f7d..b1255ee4cd75 100644
--- a/fs/bfs/file.c
+++ b/fs/bfs/file.c
@@ -160,7 +160,7 @@ static int bfs_writepage(struct address_space *mapping, struct page *page,
static int bfs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, bfs_get_block);
+ return block_read_full_page(page->mapping->host, page, bfs_get_block);
}

static void bfs_write_failed(struct address_space *mapping, loff_t to)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 2bf1b17aeff3..9ac6bf760272 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -571,7 +571,7 @@ static int blkdev_writepage(struct address_space *mapping, struct page *page,
static int blkdev_readpage(struct file * file, struct address_space *mapping,
struct page * page)
{
- return block_read_full_page(page, blkdev_get_block);
+ return block_read_full_page(page->mapping->host,page,blkdev_get_block);
}

static int blkdev_readpages(struct file *file, struct address_space *mapping,
diff --git a/fs/buffer.c b/fs/buffer.c
index 99818e876ad8..aa7d9be68581 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2231,9 +2231,9 @@ EXPORT_SYMBOL(block_is_partially_uptodate);
* set/clear_buffer_uptodate() functions propagate buffer state into the
* page struct once IO has completed.
*/
-int block_read_full_page(struct page *page, get_block_t *get_block)
+int block_read_full_page(struct inode *inode, struct page *page,
+ get_block_t *get_block)
{
- struct inode *inode = page->mapping->host;
sector_t iblock, lblock;
struct buffer_head *bh, *head, *arr[MAX_BUF_PER_PAGE];
unsigned int blocksize, bbits;
diff --git a/fs/efs/inode.c b/fs/efs/inode.c
index 05aab4a5e8a1..a2f47227124e 100644
--- a/fs/efs/inode.c
+++ b/fs/efs/inode.c
@@ -16,7 +16,7 @@
static int efs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page,efs_get_block);
+ return block_read_full_page(page->mapping->host, page,efs_get_block);
}
static sector_t _efs_bmap(struct address_space *mapping, sector_t block)
{
diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c
index 9ffa6fad18db..e43dc995f978 100644
--- a/fs/ext4/readpage.c
+++ b/fs/ext4/readpage.c
@@ -280,7 +280,8 @@ int ext4_mpage_readpages(struct address_space *mapping,
bio = NULL;
}
if (!PageUptodate(page))
- block_read_full_page(page, ext4_get_block);
+ block_read_full_page(page->mapping->host, page,
+ ext4_get_block);
else
unlock_page(page);
next_page:
diff --git a/fs/freevxfs/vxfs_subr.c b/fs/freevxfs/vxfs_subr.c
index 25f15ce143b5..91c5a39083c0 100644
--- a/fs/freevxfs/vxfs_subr.c
+++ b/fs/freevxfs/vxfs_subr.c
@@ -162,7 +162,7 @@ static int
vxfs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, vxfs_getblk);
+ return block_read_full_page(page->mapping->host, page, vxfs_getblk);
}

/**
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
index 17c96905191d..3851e95e9625 100644
--- a/fs/hfs/inode.c
+++ b/fs/hfs/inode.c
@@ -38,7 +38,7 @@ static int hfs_writepage(struct address_space *mapping, struct page *page,
static int hfs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, hfs_get_block);
+ return block_read_full_page(page->mapping->host, page, hfs_get_block);
}

static void hfs_write_failed(struct address_space *mapping, loff_t to)
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c
index d3a1ae620a14..a39d6114375a 100644
--- a/fs/hfsplus/inode.c
+++ b/fs/hfsplus/inode.c
@@ -26,7 +26,8 @@
static int hfsplus_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, hfsplus_get_block);
+ return block_read_full_page(page->mapping->host, page,
+ hfsplus_get_block);
}

static int hfsplus_writepage(struct address_space *mapping, struct page *page,
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index 218697f38375..2a151fa6b013 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -391,7 +391,7 @@ static int minix_writepage(struct address_space *mapping, struct page *page,
static int minix_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page,minix_get_block);
+ return block_read_full_page(page->mapping->host,page,minix_get_block);
}

int minix_prepare_chunk(struct page *page, loff_t pos, unsigned len)
diff --git a/fs/mpage.c b/fs/mpage.c
index d25f08f46090..c40ed2aa9bee 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -309,7 +309,7 @@ do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages,
if (bio)
bio = mpage_bio_submit(REQ_OP_READ, 0, bio);
if (!PageUptodate(page))
- block_read_full_page(page, get_block);
+ block_read_full_page(page->mapping->host, page, get_block);
else
unlock_page(page);
goto out;
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index c1d3b33e8676..9942ee775e08 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -343,7 +343,8 @@ static int ocfs2_readpage(struct file *file, struct address_space *mapping,
if (oi->ip_dyn_features & OCFS2_INLINE_DATA_FL)
ret = ocfs2_readpage_inline(inode, page);
else
- ret = block_read_full_page(page, ocfs2_get_block);
+ ret = block_read_full_page(page->mapping->host, page,
+ ocfs2_get_block);
unlock = 0;

out_alloc:
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
index ab156e35ec00..163f639caf5e 100644
--- a/fs/ocfs2/refcounttree.c
+++ b/fs/ocfs2/refcounttree.c
@@ -2961,7 +2961,8 @@ int ocfs2_duplicate_clusters_by_page(handle_t *handle,
BUG_ON(PageDirty(page));

if (!PageUptodate(page)) {
- ret = block_read_full_page(page, ocfs2_get_block);
+ ret = block_read_full_page(page->mapping->host, page,
+ ocfs2_get_block);
if (ret) {
mlog_errno(ret);
goto unlock;
diff --git a/fs/omfs/file.c b/fs/omfs/file.c
index 71e9b27ee89d..ac27a4b2186a 100644
--- a/fs/omfs/file.c
+++ b/fs/omfs/file.c
@@ -287,7 +287,7 @@ static int omfs_get_block(struct inode *inode, sector_t block,
static int omfs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, omfs_get_block);
+ return block_read_full_page(page->mapping->host, page, omfs_get_block);
}

static int omfs_readpages(struct file *file, struct address_space *mapping,
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c
index efc60096dd75..429f9295ec95 100644
--- a/fs/qnx4/inode.c
+++ b/fs/qnx4/inode.c
@@ -246,7 +246,7 @@ static void qnx4_kill_sb(struct super_block *sb)
static int qnx4_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page,qnx4_get_block);
+ return block_read_full_page(page->mapping->host, page,qnx4_get_block);
}

static sector_t qnx4_bmap(struct address_space *mapping, sector_t block)
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index cc2dfbe8e31b..d4ab2d45f846 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -2734,7 +2734,8 @@ static int reiserfs_write_full_page(struct page *page,
static int reiserfs_readpage(struct file *f, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page, reiserfs_get_block);
+ return block_read_full_page(page->mapping->host, page,
+ reiserfs_get_block);
}

static int reiserfs_writepage(struct address_space *mapping, struct page *page,
diff --git a/fs/sysv/itree.c b/fs/sysv/itree.c
index d50dfd8a4465..7cec1e024dc3 100644
--- a/fs/sysv/itree.c
+++ b/fs/sysv/itree.c
@@ -460,7 +460,7 @@ static int sysv_writepage(struct address_space *mapping, struct page *page,
static int sysv_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page,get_block);
+ return block_read_full_page(page->mapping->host, page,get_block);
}

int sysv_prepare_chunk(struct page *page, loff_t pos, unsigned len)
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c
index d04c6ed42be5..8589b934be09 100644
--- a/fs/ufs/inode.c
+++ b/fs/ufs/inode.c
@@ -477,7 +477,8 @@ static int ufs_writepage(struct address_space *mapping, struct page *page,
static int ufs_readpage(struct file *file, struct address_space *mapping,
struct page *page)
{
- return block_read_full_page(page,ufs_getfrag_block);
+ return block_read_full_page(page->mapping->host, page,
+ ufs_getfrag_block);
}

int ufs_prepare_chunk(struct page *page, loff_t pos, unsigned len)
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 052f7a8aa7cf..cab143668834 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -222,7 +222,7 @@ int block_write_full_page(struct inode *inode, struct page *page,
int __block_write_full_page(struct inode *inode, struct page *page,
get_block_t *get_block, struct writeback_control *wbc,
bh_end_io_t *handler);
-int block_read_full_page(struct page*, get_block_t*);
+int block_read_full_page(struct inode *inode, struct page*, get_block_t*);
int block_is_partially_uptodate(struct page *page,
struct address_space *mapping, unsigned long from,
unsigned long count);
--
2.14.3