summarylogtreecommitdiffstats
path: root/0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch
diff options
context:
space:
mode:
Diffstat (limited to '0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch')
-rw-r--r--0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch144
1 files changed, 0 insertions, 144 deletions
diff --git a/0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch b/0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch
deleted file mode 100644
index 9368cfd69196..000000000000
--- a/0003-LINUX-5.7-replace-__pagevec_lru_add-with-lru_cache_a.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From e111c3009fde64b50e42d3c7a759909fbd66b208 Mon Sep 17 00:00:00 2001
-From: Cheyenne Wills <cwills@sinenomine.net>
-Date: Fri, 15 May 2020 10:40:20 -0600
-Subject: [PATCH 3/3] LINUX-5.7: replace __pagevec_lru_add with
- lru_cache_add_file
-
-The Linux function __pagevec_lru_add is no longer exported in Linux
-5.7-rc1 commit bde07cfc65da5fe6c63fe23f035f5ccc0ffd89e0
-"mm/swap.c: not necessary to export __pagevec_lru_add()".
-
-As a replacement, the Linux function lru_cache_add_file can be used for
-adding a page to the lru cache. The internal processing of
-lru_cache_add_file manages its own internal pagevec and performs the
-following:
- get_page(...)
- if(!pagevec_add(...))
- __pagevec_lru_add_file(...)
-
-Introduce an autoconf test for lru_cache_add_file and replace the calls
-associated with __pagevec_lru_add with lru_cache_add_file.
-
-NOTE: see Linux commit a0b8cab3b9b2efadabdcff264c450ca515e2619c
-"mm: remove lru parameter from __pagevec_lru_add and remove parts of
-pagevec API" as a reference for this change.
-
-The lru_cache_add_file was introduced in Linux 2.6.28, therefore this
-change affects systems with Linux 2.6.28 kernels and later.
-
-Reviewed-on: https://gerrit.openafs.org/14159
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-(cherry picked from commit 17b42fe67c18fab0003fb712092d36f06c93f2eb)
-
-Change-Id: I206925d1659164a54e0c3a41b82a1733cb656b41
----
- src/afs/LINUX/osi_vnodeops.c | 49 ++++++++++++++++++++++++++++++------
- src/cf/linux-kernel-func.m4 | 5 ++++
- 2 files changed, 47 insertions(+), 7 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 96d7a2e33..00995b27a 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -31,7 +31,11 @@
- #endif
- #include <linux/pagemap.h>
- #include <linux/writeback.h>
--#include <linux/pagevec.h>
-+#if defined(HAVE_LINUX_LRU_CACHE_ADD_FILE)
-+# include <linux/swap.h>
-+#else
-+# include <linux/pagevec.h>
-+#endif
- #include <linux/aio.h>
- #include "afs/lock.h"
- #include "afs/afs_bypasscache.h"
-@@ -67,6 +71,36 @@ extern struct vcache *afs_globalVp;
-
- /* Handle interfacing with Linux's pagevec/lru facilities */
-
-+#if defined(HAVE_LINUX_LRU_CACHE_ADD_FILE)
-+
-+/*
-+ * Linux's lru_cache_add_file provides a simplified LRU interface without
-+ * needing a pagevec
-+ */
-+struct afs_lru_pages {
-+ char unused;
-+};
-+
-+static inline void
-+afs_lru_cache_init(struct afs_lru_pages *alrupages)
-+{
-+ return;
-+}
-+
-+static inline void
-+afs_lru_cache_add(struct afs_lru_pages *alrupages, struct page *page)
-+{
-+ lru_cache_add_file(page);
-+}
-+
-+static inline void
-+afs_lru_cache_finalize(struct afs_lru_pages *alrupages)
-+{
-+ return;
-+}
-+#else
-+
-+/* Linux's pagevec/lru interfaces require a pagevec */
- struct afs_lru_pages {
- struct pagevec lrupv;
- };
-@@ -74,16 +108,16 @@ struct afs_lru_pages {
- static inline void
- afs_lru_cache_init(struct afs_lru_pages *alrupages)
- {
--#if defined(PAGEVEC_INIT_COLD_ARG)
-+# if defined(PAGEVEC_INIT_COLD_ARG)
- pagevec_init(&alrupages->lrupv, 0);
--#else
-+# else
- pagevec_init(&alrupages->lrupv);
--#endif
-+# endif
- }
-
--#ifndef HAVE_LINUX_PAGEVEC_LRU_ADD_FILE
--# define __pagevec_lru_add_file __pagevec_lru_add
--#endif
-+# ifndef HAVE_LINUX_PAGEVEC_LRU_ADD_FILE
-+# define __pagevec_lru_add_file __pagevec_lru_add
-+# endif
-
- static inline void
- afs_lru_cache_add(struct afs_lru_pages *alrupages, struct page *page)
-@@ -99,6 +133,7 @@ afs_lru_cache_finalize(struct afs_lru_pages *alrupages)
- if (pagevec_count(&alrupages->lrupv))
- __pagevec_lru_add_file(&alrupages->lrupv);
- }
-+#endif /* !HAVE_LINUX_LRU_ADD_FILE */
-
- /* This function converts a positive error code from AFS into a negative
- * code suitable for passing into the Linux VFS layer. It checks that the
-diff --git a/src/cf/linux-kernel-func.m4 b/src/cf/linux-kernel-func.m4
-index 597730f5f..07627db52 100644
---- a/src/cf/linux-kernel-func.m4
-+++ b/src/cf/linux-kernel-func.m4
-@@ -146,6 +146,11 @@ AC_CHECK_LINUX_FUNC([inode_lock],
- [#include <linux/fs.h>],
- [inode_lock(NULL);])
-
-+dnl lru_cache_add_file added to Linux 2.6.28.
-+AC_CHECK_LINUX_FUNC([lru_cache_add_file],
-+ [#include <linux/swap.h>],
-+ [lru_cache_add_file(NULL);])
-+
- dnl Consequences - things which get set as a result of the
- dnl above tests
- AS_IF([test "x$ac_cv_linux_func_d_alloc_anon" = "xno"],
---
-2.27.0
-