diff options
Diffstat (limited to '0005-Linux-4.2-Changes-in-link-operation-APIs.patch')
-rw-r--r-- | 0005-Linux-4.2-Changes-in-link-operation-APIs.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/0005-Linux-4.2-Changes-in-link-operation-APIs.patch b/0005-Linux-4.2-Changes-in-link-operation-APIs.patch deleted file mode 100644 index c2fe8d273e86..000000000000 --- a/0005-Linux-4.2-Changes-in-link-operation-APIs.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 1c8e07a6e09d25d1f3dc63b4af8f7267eabe34ee Mon Sep 17 00:00:00 2001 -From: Marc Dionne <marc.dionne@your-file-system.com> -Date: Mon, 6 Jul 2015 13:01:38 -0300 -Subject: [PATCH 5/6] Linux 4.2: Changes in link operation APIs - -The follow_link and put_link operations are revised. -Test for the new signature and adapt the code. - -Reviewed-on: http://gerrit.openafs.org/11928 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com> -(cherry picked from commit 6c3ac6dc1ea865153a65b5c5c4f288617a3e6d0f) - -Change-Id: I779fe8a29ec75a5db545b5d370927b810c1165c9 -Reviewed-on: http://gerrit.openafs.org/11951 -Tested-by: BuildBot <buildbot@rampaginggeek.com> -Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> -Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de> -(cherry picked from commit b93da6f3e99735ef2584fb172d028284bb581011) ---- - acinclude.m4 | 10 ++++++++++ - src/afs/LINUX/osi_vnodeops.c | 27 +++++++++++++++++++++++++++ - 2 files changed, 37 insertions(+) - -diff --git a/acinclude.m4 b/acinclude.m4 -index c924d90..e9e84a7f 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -845,6 +845,16 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) - LINUX_KBUILD_USES_EXTRA_CFLAGS - LINUX_KERNEL_COMPILE_WORKS - -+ dnl Operation signature checks -+ AC_CHECK_LINUX_OPERATION([inode_operations], [follow_link], [no_nameidata], -+ [#include <linux/fs.h>], -+ [const char *], -+ [struct dentry *dentry, void **link_data]) -+ AC_CHECK_LINUX_OPERATION([inode_operations], [put_link], [no_nameidata], -+ [#include <linux/fs.h>], -+ [void], -+ [struct inode *inode, void *link_data]) -+ - dnl Check for header files - AC_CHECK_LINUX_HEADER([config.h]) - AC_CHECK_LINUX_HEADER([completion.h]) -diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c -index a878eb4..3c0cb33 100644 ---- a/src/afs/LINUX/osi_vnodeops.c -+++ b/src/afs/LINUX/osi_vnodeops.c -@@ -1896,14 +1896,22 @@ afs_linux_readlink(struct dentry *dp, char *target, int maxlen) - /* afs_linux_follow_link - * a file system dependent link following routine. - */ -+#if defined(HAVE_LINUX_INODE_OPERATIONS_FOLLOW_LINK_NO_NAMEIDATA) -+static const char *afs_linux_follow_link(struct dentry *dentry, void **link_data) -+#else - static int afs_linux_follow_link(struct dentry *dentry, struct nameidata *nd) -+#endif - { - int code; - char *name; - - name = kmalloc(PATH_MAX, GFP_NOFS); - if (!name) { -+#if defined(HAVE_LINUX_INODE_OPERATIONS_FOLLOW_LINK_NO_NAMEIDATA) -+ return ERR_PTR(-EIO); -+#else - return -EIO; -+#endif - } - - AFS_GLOCK(); -@@ -1911,14 +1919,32 @@ static int afs_linux_follow_link(struct dentry *dentry, struct nameidata *nd) - AFS_GUNLOCK(); - - if (code < 0) { -+#if defined(HAVE_LINUX_INODE_OPERATIONS_FOLLOW_LINK_NO_NAMEIDATA) -+ return ERR_PTR(code); -+#else - return code; -+#endif - } - - name[code] = '\0'; -+#if defined(HAVE_LINUX_INODE_OPERATIONS_FOLLOW_LINK_NO_NAMEIDATA) -+ return *link_data = name; -+#else - nd_set_link(nd, name); - return 0; -+#endif - } - -+#if defined(HAVE_LINUX_INODE_OPERATIONS_PUT_LINK_NO_NAMEIDATA) -+static void -+afs_linux_put_link(struct inode *inode, void *link_data) -+{ -+ char *name = link_data; -+ -+ if (name && !IS_ERR(name)) -+ kfree(name); -+} -+#else - static void - afs_linux_put_link(struct dentry *dentry, struct nameidata *nd) - { -@@ -1927,6 +1953,7 @@ afs_linux_put_link(struct dentry *dentry, struct nameidata *nd) - if (name && !IS_ERR(name)) - kfree(name); - } -+#endif /* HAVE_LINUX_INODE_OPERATIONS_PUT_LINK_NO_NAMEIDATA */ - - #endif /* USABLE_KERNEL_PAGE_SYMLINK_CACHE */ - --- -2.5.1 - |