diff options
Diffstat (limited to '0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch')
-rw-r--r-- | 0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch b/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch deleted file mode 100644 index cf8f4b88ecfa..000000000000 --- a/0003-Linux-4.5-get_link-instead-of-follow_link-put_link.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 97591edd99583f460d61cece34f9e2173ea637fb Mon Sep 17 00:00:00 2001 -From: Chaskiel Grundman <cg2v@andrew.cmu.edu> -Date: Thu, 5 May 2016 12:35:08 -0400 -Subject: [PATCH 3/5] Linux 4.5: get_link instead of follow_link+put_link - -In linux commit 6b255391, the follow_link inode operation was -replaced by the get_link operation, which is basically the same -but takes the inode and dentry separately, allowing for the -possibility of staying in RCU mode. - -For now, only support this if page_get_link is available and we are -using the USABLE_KERNEL_PAGE_SYMLINK_CACHE - -The previous test for USABLE_KERNEL_PAGE_SYMLINK_CACHE used a bogus, -undefined configure variable (ac_cv_linux_kernel_page_follow_link). -Remove it, as it was not needed - -Change-Id: I2d7851d31dd4b1b944b16fad611addb804930eca ---- - acinclude.m4 | 10 +++++++++- - src/afs/LINUX/osi_vnodeops.c | 4 +++- - 2 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index c8a7ceb..aca1316 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -890,6 +890,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h]) - AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h]) - AC_CHECK_LINUX_STRUCT([inode_operations], [truncate], [fs.h]) -+ AC_CHECK_LINUX_STRUCT([inode_operations], [get_link], [fs.h]) - AC_CHECK_LINUX_STRUCT([key], [payload.value], [key.h]) - AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h]) - AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h]) -@@ -990,6 +991,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - AC_CHECK_LINUX_FUNC([page_follow_link], - [#include <linux/fs.h>], - [page_follow_link(0,0);]) -+ AC_CHECK_LINUX_FUNC([page_get_link], -+ [#include <linux/fs.h>], -+ [page_get_link(0,0,0);]) - AC_CHECK_LINUX_FUNC([page_offset], - [#include <linux/pagemap.h>], - [page_offset(NULL);]) -@@ -1168,11 +1172,15 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then - AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file]) - fi -- if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then -+ if test "x$ac_cv_linux_func_page_get_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then - AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API]) - else - AC_MSG_WARN([your kernel does not have a usable symlink cache API]) - fi -+ if test "x$ac_cv_linux_func_page_get_link" != "xyes" -a "x$ac_cv_linux_struct_inode_operations_has_get_link" = "xyes"; then -+ AC_MSG_ERROR([Your kernel does not use follow_link - not supported without symlink cache API]) -+ exit 1 -+ fi - : - fi - if test "x$enable_linux_d_splice_alias_extra_iput" = xyes; then -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index 2f753dd..00b41ef 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -3108,7 +3108,9 @@ static struct address_space_operations afs_symlink_aops = { - static struct inode_operations afs_symlink_iops = { - #if defined(USABLE_KERNEL_PAGE_SYMLINK_CACHE) - .readlink = page_readlink, --# if defined(HAVE_LINUX_PAGE_FOLLOW_LINK) -+# if defined(HAVE_LINUX_PAGE_GET_LINK) -+ .get_link = page_get_link, -+# elif defined(HAVE_LINUX_PAGE_FOLLOW_LINK) - .follow_link = page_follow_link, - # else - .follow_link = page_follow_link_light, --- -2.8.3 - |