Created
September 30, 2015 21:53
-
-
Save anonymous/613ee6cfc2b695e4c760 to your computer and use it in GitHub Desktop.
0001-vmhgfs-support-linux-4.2.x-kernel.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 8a8b5bdb33787eba5cbce1c69d5039fb14c4503e Mon Sep 17 00:00:00 2001 | |
From: JackM | |
Date: Thu, 1 Oct 2015 00:42:34 +0300 | |
Subject: [PATCH] vmhgfs support linux 4.2.x kernel | |
--- | |
0001-vmhgfs-support-linux-4.2.x-kernel.patch | 93 ++++++++++++++++++++++++++++ | |
PKGBUILD | 3 + | |
2 files changed, 96 insertions(+) | |
create mode 100644 0001-vmhgfs-support-linux-4.2.x-kernel.patch | |
diff --git a/0001-vmhgfs-support-linux-4.2.x-kernel.patch b/0001-vmhgfs-support-linux-4.2.x-kernel.patch | |
new file mode 100644 | |
index 0000000..4fa315c | |
--- /dev/null | |
+++ b/0001-vmhgfs-support-linux-4.2.x-kernel.patch | |
@@ -0,0 +1,93 @@ | |
+From b3a634a491da35d47a5e6e6120a21cba514fc3ec Mon Sep 17 00:00:00 2001 | |
+From: JackM | |
+Date: Wed, 30 Sep 2015 23:16:40 +0300 | |
+Subject: [PATCH] vmhgfs support linux 4.2.x kernel | |
+ | |
+--- | |
+ modules/linux/vmhgfs/link.c | 30 +++++++++++++++++++++++++----- | |
+ 1 file changed, 25 insertions(+), 5 deletions(-) | |
+ | |
+diff --git a/open-vm-tools/modules/linux/vmhgfs/link.c b/open-vm-tools/modules/linux/vmhgfs/link.c | |
+index 06f693b..72e97ff 100644 | |
+--- a/open-vm-tools/modules/linux/vmhgfs/link.c | |
++++ b/open-vm-tools/modules/linux/vmhgfs/link.c | |
+@@ -35,7 +35,9 @@ | |
+ #include "vm_assert.h" | |
+ | |
+ /* HGFS symlink operations. */ | |
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++static void *HgfsFollowlink(struct dentry *dentry, void **cookie, struct nameidata *nd); | |
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
+ static void *HgfsFollowlink(struct dentry *dentry, | |
+ struct nameidata *nd); | |
+ #else | |
+@@ -45,7 +47,10 @@ static int HgfsFollowlink(struct dentry *dentry, | |
+ static int HgfsReadlink(struct dentry *dentry, | |
+ char __user *buffer, | |
+ int buflen); | |
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++static void HgfsPutlink(struct dentry *dentry, | |
++ void *cookie); | |
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
+ static void HgfsPutlink(struct dentry *dentry, | |
+ struct nameidata *nd, | |
+ void *cookie); | |
+@@ -85,7 +90,9 @@ struct inode_operations HgfsLinkInodeOperations = { | |
+ *---------------------------------------------------------------------- | |
+ */ | |
+ | |
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++static void *HgfsFollowlink(struct dentry *dentry, void **cookie, struct nameidata *nd) | |
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
+ static void * | |
+ HgfsFollowlink(struct dentry *dentry, // IN: Dentry containing link | |
+ struct nameidata *nd) // OUT: Contains target dentry | |
+@@ -124,7 +131,11 @@ HgfsFollowlink(struct dentry *dentry, // IN: Dentry containing link | |
+ } else { | |
+ LOG(6, (KERN_DEBUG "VMware hgfs: %s: calling nd_set_link %s\n", | |
+ __func__, fileName)); | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++ *cookie = fileName; | |
++#else | |
+ nd_set_link(nd, fileName); | |
++#endif | |
+ } | |
+ } | |
+ out: | |
+@@ -219,7 +230,10 @@ HgfsReadlink(struct dentry *dentry, // IN: Dentry containing link | |
+ *---------------------------------------------------------------------- | |
+ */ | |
+ | |
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++static void HgfsPutlink(struct dentry *dentry, | |
++ void *cookie) | |
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) | |
+ static void | |
+ HgfsPutlink(struct dentry *dentry, // dentry | |
+ struct nameidata *nd, // lookup name information | |
+@@ -235,11 +249,17 @@ HgfsPutlink(struct dentry *dentry, // dentry | |
+ LOG(6, (KERN_DEBUG "VMware hgfs: %s: put for %s\n", | |
+ __func__, dentry->d_name.name)); | |
+ | |
+- fileName = nd_get_link(nd); | |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) | |
++ fileName = cookie; | |
++#else | |
++ fileName = nd_get_link(nd); | |
++#endif | |
+ if (!IS_ERR(fileName)) { | |
+ LOG(6, (KERN_DEBUG "VMware hgfs: %s: putting %s\n", | |
+ __func__, fileName)); | |
+ kfree(fileName); | |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0) | |
+ nd_set_link(nd, NULL); | |
++#endif | |
+ } | |
+ } | |
+-- | |
+2.5.0.windows.1 | |
+ | |
diff --git a/PKGBUILD b/PKGBUILD | |
index 5535084..d3d3b7c 100644 | |
--- a/PKGBUILD | |
+++ b/PKGBUILD | |
@@ -27,17 +27,20 @@ source=(http://downloads.sourceforge.net/${_name}/${_full_name}.tar.gz | |
0001-Fix-vmxnet-module-on-kernels-3.16.patch | |
0004-Support-backing-dev-info-kernel-4.0.patch | |
0005-Remove-new_sync-for-Linux-4.1.patch | |
+ 0001-vmhgfs-support-linux-4.2.x-kernel.patch | |
dkms.conf.in) | |
sha256sums=('5adef80f43186aff426f4f22b4b31b514d18a1dcc3334d56ed22d2e308803971' | |
'6684cf4cd9a492b82b24dff076fbbafef19e59ef969f532ee3da1501136a7c48' | |
'dac377beb660dc6c143356255346b34db0986511dcb74f051e06f243a0078af8' | |
'38e2ae573a849251abde79c82b694d76f32cc75c9ff60878ebcb23f2f8c86928' | |
+ 'd8191b23b9d5689b321bd0cf20b71a4039fde454d08644de6dc3a6521d574fd0' | |
'5255a183cccd80b2bfbbf519b1cc8cec81ae40bbc0b5a88dfddd95532ece84ed') | |
prepare() { | |
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0001-Fix-vmxnet-module-on-kernels-3.16.patch" | |
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0004-Support-backing-dev-info-kernel-4.0.patch" | |
patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0005-Remove-new_sync-for-Linux-4.1.patch" | |
+ patch -d "$srcdir/${_full_name}" -Np2 -i "$srcdir/0001-vmhgfs-support-linux-4.2.x-kernel.patch" | |
} | |
package() { | |
-- | |
2.6.0 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment