Blame SOURCES/9004-Compat-Replace-readahead-by-readpages.patch

Kmods SIG 63c143
From 4047e5d6ee42f45b206864a99360fae0f013c902 Mon Sep 17 00:00:00 2001
Kmods SIG 63c143
From: Peter Georg <peter.georg@physik.uni-regensburg.de>
Kmods SIG 63c143
Date: Wed, 22 Sep 2021 22:32:09 +0200
Kmods SIG 63c143
Subject: [PATCH 9004/9005] Compat: Replace readahead by readpages
Kmods SIG 63c143
Kmods SIG 63c143
---
Kmods SIG 63c143
 src/inode.c | 29 +++++++++--------------------
Kmods SIG 63c143
 1 file changed, 9 insertions(+), 20 deletions(-)
Kmods SIG 63c143
Kmods SIG 63c143
diff --git a/src/inode.c b/src/inode.c
Kmods SIG 63c143
index 69eef0f..20b9aea 100644
Kmods SIG 63c143
--- a/src/inode.c
Kmods SIG 63c143
+++ b/src/inode.c
Kmods SIG 63c143
@@ -704,34 +704,23 @@ static int ntfs_readpage(struct file *file, struct page *page)
Kmods SIG 63c143
 	return mpage_readpage(page, ntfs_get_block);
Kmods SIG 63c143
 }
Kmods SIG 63c143
 
Kmods SIG 63c143
-static void ntfs_readahead(struct readahead_control *rac)
Kmods SIG 63c143
+static int ntfs_readpages(struct file *file, struct address_space *mapping,
Kmods SIG 63c143
+                      struct list_head *pages, unsigned int nr_pages)
Kmods SIG 63c143
 {
Kmods SIG 63c143
-	struct address_space *mapping = rac->mapping;
Kmods SIG 63c143
 	struct inode *inode = mapping->host;
Kmods SIG 63c143
 	struct ntfs_inode *ni = ntfs_i(inode);
Kmods SIG 63c143
-	u64 valid;
Kmods SIG 63c143
-	loff_t pos;
Kmods SIG 63c143
 
Kmods SIG 63c143
 	if (is_resident(ni)) {
Kmods SIG 63c143
-		/* No readahead for resident. */
Kmods SIG 63c143
-		return;
Kmods SIG 63c143
+		/* No readpages for resident. */
Kmods SIG 63c143
+		return 0;
Kmods SIG 63c143
 	}
Kmods SIG 63c143
 
Kmods SIG 63c143
 	if (is_compressed(ni)) {
Kmods SIG 63c143
-		/* No readahead for compressed. */
Kmods SIG 63c143
-		return;
Kmods SIG 63c143
-	}
Kmods SIG 63c143
-
Kmods SIG 63c143
-	valid = ni->i_valid;
Kmods SIG 63c143
-	pos = readahead_pos(rac);
Kmods SIG 63c143
-
Kmods SIG 63c143
-	if (valid < i_size_read(inode) && pos <= valid &&
Kmods SIG 63c143
-	    valid < pos + readahead_length(rac)) {
Kmods SIG 63c143
-		/* Range cross 'valid'. Read it page by page. */
Kmods SIG 63c143
-		return;
Kmods SIG 63c143
+		/* No readpages for compressed. */
Kmods SIG 63c143
+		return 0;
Kmods SIG 63c143
 	}
Kmods SIG 63c143
 
Kmods SIG 63c143
-	mpage_readahead(rac, ntfs_get_block);
Kmods SIG 63c143
+	return mpage_readpages(mapping, pages, nr_pages, ntfs_get_block);
Kmods SIG 63c143
 }
Kmods SIG 63c143
 
Kmods SIG 63c143
 static int ntfs_get_block_direct_IO_R(struct inode *inode, sector_t iblock,
Kmods SIG 63c143
@@ -1943,7 +1932,7 @@ const struct inode_operations ntfs_link_inode_operations = {
Kmods SIG 63c143
 
Kmods SIG 63c143
 const struct address_space_operations ntfs_aops = {
Kmods SIG 63c143
 	.readpage	= ntfs_readpage,
Kmods SIG 63c143
-	.readahead	= ntfs_readahead,
Kmods SIG 63c143
+	.readpages	= ntfs_readpages,
Kmods SIG 63c143
 	.writepage	= ntfs_writepage,
Kmods SIG 63c143
 	.writepages	= ntfs_writepages,
Kmods SIG 63c143
 	.write_begin	= ntfs_write_begin,
Kmods SIG 63c143
@@ -1955,6 +1944,6 @@ const struct address_space_operations ntfs_aops = {
Kmods SIG 63c143
 
Kmods SIG 63c143
 const struct address_space_operations ntfs_aops_cmpr = {
Kmods SIG 63c143
 	.readpage	= ntfs_readpage,
Kmods SIG 63c143
-	.readahead	= ntfs_readahead,
Kmods SIG 63c143
+	.readpages	= ntfs_readpages,
Kmods SIG 63c143
 };
Kmods SIG 63c143
 // clang-format on
Kmods SIG 63c143
-- 
Kmods SIG 63c143
2.31.1
Kmods SIG 63c143