diff --git a/acinclude.m4 b/acinclude.m4 index 745f38e12a..f2153193a3 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1091,6 +1091,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) [#include #include ], [kthread_run(NULL, NULL, "test");]) + AC_CHECK_LINUX_FUNC([inode_nohighmem], + [#include ], + [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 eb8a269bd2..6a8e95b465 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -3149,6 +3149,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;