commit:     af19a5d912cdd537f70667722d2fb3cbb14b3d35
Author:     Fabio Rossi <rossi.f <AT> inwind <DOT> it>
AuthorDate: Fri May 27 21:31:39 2016 +0000
Commit:     Fabio Rossi <rossi.f <AT> inwind <DOT> net>
CommitDate: Fri May 27 22:57:07 2016 +0000
URL:        https://gitweb.gentoo.org/proj/vmware.git/commit/?id=af19a5d9

app-emulation/vmware-modules: fix patching of version 308 for kernel 4.5

The old patch 308-4.05-00-vmblock-follow_link.patch was not complete
(probably produced before final 4.5-rc1 release). The problem was
triggering a build failure on some systems.

The patch for version 304 was already correct.

 .../files/308-4.05-00-vmblock-follow_link.patch    | 33 ++++++++++++++--------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git 
a/app-emulation/vmware-modules/files/308-4.05-00-vmblock-follow_link.patch 
b/app-emulation/vmware-modules/files/308-4.05-00-vmblock-follow_link.patch
index c139292..03311b0 100644
--- a/app-emulation/vmware-modules/files/308-4.05-00-vmblock-follow_link.patch
+++ b/app-emulation/vmware-modules/files/308-4.05-00-vmblock-follow_link.patch
@@ -1,12 +1,12 @@
---- vmblock-only/linux/inode.c 2016-01-30 19:13:04.019947435 +0100
-+++ vmblock-only/linux/inode.c.new     2016-01-30 19:13:56.226950354 +0100
+--- vmblock-only/linux/inode.c.old     2016-05-27 15:12:49.315632906 +0200
++++ vmblock-only/linux/inode.c 2016-05-27 22:57:39.550192422 +0200
 @@ -44,7 +44,9 @@
  static int InodeOpReadlink(struct dentry *, char __user *, int);
  #endif
-
+ 
 -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
-+static const char *InodeOpFollowlink(struct dentry *dentry, struct inode 
*inode, void **cookie);
++static const char *InodeOpFollowlink(struct dentry *dentry, struct inode 
*inode, struct delayed_call *done);
 +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
  static const char *InodeOpFollowlink(struct dentry *dentry, void **cookie);
  #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
@@ -21,21 +21,23 @@
     .follow_link = InodeOpFollowlink,
 +#endif
  };
-
+ 
  /*
-@@ -231,6 +237,9 @@
+@@ -231,7 +237,10 @@
  static int
  #endif
  InodeOpFollowlink(struct dentry *dentry,  // IN : dentry of symlink
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
 +                  struct inode *inode,
-+#endif
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
++                  struct delayed_call *done)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
                    void **cookie)          // OUT: stores opaque pointer
  #else
-@@ -241,12 +250,20 @@
+                   struct nameidata *nd)   // OUT: stores result
+@@ -241,18 +250,28 @@
     VMBlockInodeInfo *iinfo;
-
+ 
     if (!dentry) {
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
 +      ret = -ECHILD;
@@ -45,7 +47,7 @@
 +#endif
        goto out;
     }
-
+ 
 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
 +   iinfo = INODE_TO_IINFO(inode);
 +#else
@@ -54,3 +56,12 @@
     if (!iinfo) {
        ret = -EINVAL;
        goto out;
+    }
+ 
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
++   return iinfo->name;
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 99)
+    return *cookie = iinfo->name;
+ #else
+    nd_set_link(nd, iinfo->name);

Reply via email to