summarylogtreecommitdiffstats
path: root/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
diff options
context:
space:
mode:
Diffstat (limited to '0002-Linux-4.5-no-highmem-in-symlink-ops.patch')
-rw-r--r--0002-Linux-4.5-no-highmem-in-symlink-ops.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/0002-Linux-4.5-no-highmem-in-symlink-ops.patch b/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
new file mode 100644
index 000000000000..7e42d62ef064
--- /dev/null
+++ b/0002-Linux-4.5-no-highmem-in-symlink-ops.patch
@@ -0,0 +1,45 @@
+From fc08da3fd6a93a6de215fc6cb9f3a858dea3bfc0 Mon Sep 17 00:00:00 2001
+From: Benjamin Kaduk <kaduk@mit.edu>
+Date: Sun, 1 May 2016 19:04:45 -0400
+Subject: [PATCH 2/5] Linux 4.5: no highmem in symlink ops
+
+Symlink bodies in the pagecache should not be in highmem, as
+upstream converted in commit 21fc61c73.
+
+Change-Id: I1e4c3c51308df096cdfa4d5e7b16279e275e7f41
+---
+ acinclude.m4 | 3 +++
+ src/afs/LINUX/osi_vnodeops.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 4f8e2c0..c8a7ceb 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -1034,6 +1034,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
+ [#include <linux/kernel.h>
+ #include <linux/kthread.h>],
+ [kthread_run(NULL, NULL, "test");])
++ AC_CHECK_LINUX_FUNC([inode_nohighmem],
++ [#include <linux/fs.h>],
++ [inode_nohighmem(NULL);])
+
+ dnl Consequences - things which get set as a result of the
+ dnl above tests
+diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
+index 1b99c94..2f753dd 100644
+--- a/src/afs/LINUX/osi_vnodeops.c
++++ b/src/afs/LINUX/osi_vnodeops.c
+@@ -3143,6 +3143,9 @@ afs_fill_inode(struct inode *ip, struct vattr *vattr)
+
+ } else if (S_ISLNK(ip->i_mode)) {
+ ip->i_op = &afs_symlink_iops;
++#if defined(HAVE_LINUX_INODE_NOHIGHMEM)
++ inode_nohighmem(ip);
++#endif
+ #if defined(USABLE_KERNEL_PAGE_SYMLINK_CACHE)
+ ip->i_data.a_ops = &afs_symlink_aops;
+ ip->i_mapping = &ip->i_data;
+--
+2.8.2
+