summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/open-vm-tools-vserver/APKBUILD11
-rw-r--r--main/open-vm-tools-vserver/linux-3.6-build-fix.patch63
2 files changed, 72 insertions, 2 deletions
diff --git a/main/open-vm-tools-vserver/APKBUILD b/main/open-vm-tools-vserver/APKBUILD
index dbe681738..873074ddc 100644
--- a/main/open-vm-tools-vserver/APKBUILD
+++ b/main/open-vm-tools-vserver/APKBUILD
@@ -3,9 +3,9 @@
_flavor=vserver
_realname=open-vm-tools
_name=$_realname-$_flavor
-_kver=3.4.13
+_kver=3.6.3
_kpkgrel=0
-_myvsver=vs2.3.3.8
+_myvsver=vs2.3.4.3-noxfs-nocow
_mypkgrel=1
_realver=9.2.0_p799703
@@ -42,6 +42,7 @@ subpackages=""
depends="linux-${_flavor}=${_kernelver}"
makedepends="glib-dev gettext-dev linux-${_flavor}-dev=${_kernelver}"
source="http://downloads.sourceforge.net/project/open-vm-tools/open-vm-tools/stable-${_realver%.*}.x/open-vm-tools-${_ver}.tar.gz
+ linux-3.6-build-fix.patch
vmware-modules.initd
"
install_if="linux-${_flavor}=${_kernelver} open-vm-tools"
@@ -50,6 +51,11 @@ _builddir="$srcdir/$_realname-$_ver"
prepare() {
cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
}
build() {
@@ -78,4 +84,5 @@ package() {
}
md5sums="37341978a00a1568b898a8ce024f9da9 open-vm-tools-9.2.0-799703.tar.gz
+d9ffaf628837ea6a216b96dac69705e6 linux-3.6-build-fix.patch
afba2c3487d0b12cee80eb2f04b05ba1 vmware-modules.initd"
diff --git a/main/open-vm-tools-vserver/linux-3.6-build-fix.patch b/main/open-vm-tools-vserver/linux-3.6-build-fix.patch
new file mode 100644
index 000000000..f012a3ff1
--- /dev/null
+++ b/main/open-vm-tools-vserver/linux-3.6-build-fix.patch
@@ -0,0 +1,63 @@
+diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c
+--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/inode.c 2012-05-23 00:12:52.000000000 +0400
++++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/inode.c 2012-10-02 15:39:47.000000000 +0400
+@@ -1801,7 +1802,7 @@
+ #else
+ if (mask & MAY_ACCESS) { /* For sys_access. */
+ #endif
+- struct list_head *pos;
++ struct hlist_node *pos;
+ int dcount = 0;
+ struct dentry *dentry = NULL;
+
+@@ -1817,7 +1818,7 @@
+ #endif
+
+ /* Find a dentry with valid d_count. Refer bug 587789. */
+- list_for_each(pos, &inode->i_dentry) {
++ list_for_each(pos, inode->i_dentry.first) {
+ dentry = list_entry(pos, struct dentry, d_alias);
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 38)
+ dcount = atomic_read(&dentry->d_count);
+diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c
+--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmhgfs/page.c 2012-05-23 00:12:52.000000000 +0400
++++ open-vm-tools-2012.05.21-724730/modules/linux/vmhgfs/page.c 2012-10-02 15:41:38.000000000 +0400
+@@ -893,7 +893,7 @@
+ */
+ if ((offset >= currentFileSize) ||
+ ((pageFrom == 0) && (offset + pageTo) >= currentFileSize)) {
+- void *kaddr = kmap_atomic(page, KM_USER0);
++ void *kaddr = kmap_atomic(page);
+
+ if (pageFrom) {
+ memset(kaddr, 0, pageFrom);
+@@ -901,7 +901,7 @@
+ if (pageTo < PAGE_CACHE_SIZE) {
+ memset(kaddr + pageTo, 0, PAGE_CACHE_SIZE - pageTo);
+ }
+- kunmap_atomic(kaddr, KM_USER0);
++ kunmap_atomic(kaddr);
+ flush_dcache_page(page);
+ }
+ }
+diff -wbBur open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c
+--- open-vm-tools-2012.05.21-724730.org/modules/linux/vmsync/sync.c 2012-05-23 00:12:52.000000000 +0400
++++ open-vm-tools-2012.05.21-724730/modules/linux/vmsync/sync.c 2012-10-02 15:23:56.000000000 +0400
+@@ -162,7 +162,7 @@
+ cancel_delayed_work(&state->thawTask);
+ list_for_each_safe(cur, tmp, &state->devices) {
+ dev = list_entry(cur, VmSyncBlockDevice, list);
+- if (dev->sb != NULL && dev->sb->s_frozen != SB_UNFROZEN) {
++ if (dev->sb != NULL && dev->sb->s_writers.frozen != SB_UNFROZEN) {
+ thaw_bdev(dev->bdev, dev->sb);
+ atomic_dec(&gFreezeCount);
+ }
+@@ -237,7 +237,7 @@
+ * the superblock is already frozen.
+ */
+ if (inode->i_sb->s_bdev == NULL ||
+- inode->i_sb->s_frozen != SB_UNFROZEN) {
++ inode->i_sb->s_writers.frozen != SB_UNFROZEN) {
+ result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY;
+ compat_path_release(&nd);
+ goto exit;