summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-emulation/vmware-modules/files/308-4.05-00-vmblock-follow_link.patch33
1 files 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);