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;

