diff options
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.patch | 45 |
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 + |