diff -ur a/modules/linux/shared/compat_cred.h b/modules/linux/shared/compat_cred.h
--- a/modules/linux/shared/compat_cred.h	2013-09-23 00:57:48.000000000 -0500
+++ b/modules/linux/shared/compat_cred.h	2014-05-03 22:00:01.094862688 -0500
@@ -35,6 +35,22 @@
 #define current_fsgid() (current->fsgid)
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)
+#define CURRENT_FSUID() (__kuid_val(current_fsuid()))
+#define CURRENT_FSGID() (__kgid_val(current_fsgid()))
+#define CURRENT_UID() (__kuid_val(current_uid()))
+#define CURRENT_GID() (__kgid_val(current_gid()))
+#define KUID2UID(kuid) (kuid.val)
+#define KGID2GID(kgid) (kgid.val)
+#else
+#define CURRENT_FSUID() (current_fsuid())
+#define CURRENT_FSGID() (current_fsgid())
+#define CURRENT_UID() (current_uid())
+#define CURRENT_GID() (current_gid())
+#define KUID2UID(kuid) (kuid)
+#define KGID2GID(kgid) (kgid)
+#endif
+
 #if !defined(cap_set_full)
 /* cap_set_full was removed in kernel version 3.0-rc4. */
 #define cap_set_full(_c) do { (_c) = CAP_FULL_SET; } while (0)
diff -ur a/modules/linux/vmhgfs/file.c b/modules/linux/vmhgfs/file.c
--- a/modules/linux/vmhgfs/file.c	2013-09-23 00:57:48.000000000 -0500
+++ b/modules/linux/vmhgfs/file.c	2014-05-03 22:00:01.089862688 -0500
@@ -573,7 +573,7 @@
             iparent = dparent->d_inode;
 
             HgfsSetUidGid(iparent, file->f_dentry,
-                          current_fsuid(), current_fsgid());
+                          CURRENT_FSUID(), CURRENT_FSGID());
 
             dput(dparent);
          }
diff -ur a/modules/linux/vmhgfs/filesystem.c b/modules/linux/vmhgfs/filesystem.c
--- a/modules/linux/vmhgfs/filesystem.c	2013-09-23 00:57:48.000000000 -0500
+++ b/modules/linux/vmhgfs/filesystem.c	2014-05-03 22:00:01.090862688 -0500
@@ -231,13 +231,13 @@
    if (si->uidSet) {
       si->uid = mountInfo->uid;
    } else {
-      si->uid = current_uid();
+      si->uid = CURRENT_UID();
    }
    si->gidSet = mountInfo->gidSet;
    if (si->gidSet) {
       si->gid = mountInfo->gid;
    } else {
-      si->gid = current_gid();
+      si->gid = CURRENT_GID();
    }
    si->fmask = mountInfo->fmask;
    si->dmask = mountInfo->dmask;
diff -ur a/modules/linux/vmhgfs/fsutil.c b/modules/linux/vmhgfs/fsutil.c
--- a/modules/linux/vmhgfs/fsutil.c	2013-09-23 00:57:48.000000000 -0500
+++ b/modules/linux/vmhgfs/fsutil.c	2014-05-03 22:00:01.092862688 -0500
@@ -31,6 +31,7 @@
 /* Must come before compat_dcache. */
 #include "compat_fs.h"
 
+#include "compat_cred.h"
 #include "compat_dcache.h"
 #include "compat_kernel.h"
 #include "compat_sched.h"
@@ -679,14 +680,14 @@
     * the server didn't give us a uid or gid.
     */
    if (si->uidSet || (attr->mask & HGFS_ATTR_VALID_USERID) == 0) {
-      inode->i_uid = si->uid;
+      KUID2UID(inode->i_uid) = si->uid;
    } else {
-      inode->i_uid = attr->userId;
+      KUID2UID(inode->i_uid) = attr->userId;
    }
    if (si->gidSet || (attr->mask & HGFS_ATTR_VALID_GROUPID) == 0) {
-      inode->i_gid = si->gid;
+      KGID2GID(inode->i_gid) = si->gid;
    } else {
-      inode->i_gid = attr->groupId;
+      KGID2GID(inode->i_gid) = attr->groupId;
    }
 
    inode->i_rdev = 0;  /* Device nodes are not supported */
@@ -1753,7 +1754,7 @@
    struct iattr setUidGid;
 
    setUidGid.ia_valid = ATTR_UID;
-   setUidGid.ia_uid = uid;
+   KUID2UID(setUidGid.ia_uid) = uid;
 
    /*
     * Only set the gid if the host file system wouldn't have for us.  See the
@@ -1761,7 +1762,7 @@
     */
    if (!parent || !(parent->i_mode & S_ISGID)) {
       setUidGid.ia_valid |= ATTR_GID;
-      setUidGid.ia_gid = gid;
+      KGID2GID(setUidGid.ia_gid) = gid;
    }
 
    /*
diff -ur a/modules/linux/vmhgfs/inode.c b/modules/linux/vmhgfs/inode.c
--- a/modules/linux/vmhgfs/inode.c	2013-09-23 00:57:48.000000000 -0500
+++ b/modules/linux/vmhgfs/inode.c	2014-05-03 22:00:01.093862688 -0500
@@ -513,13 +513,13 @@
 
       if (valid & ATTR_UID) {
          attrV2->mask |= HGFS_ATTR_VALID_USERID;
-         attrV2->userId = iattr->ia_uid;
+         attrV2->userId = KUID2UID(iattr->ia_uid);
          *changed = TRUE;
       }
 
       if (valid & ATTR_GID) {
          attrV2->mask |= HGFS_ATTR_VALID_GROUPID;
-         attrV2->groupId = iattr->ia_gid;
+         attrV2->groupId = KGID2GID(iattr->ia_gid);
          *changed = TRUE;
       }
 
@@ -616,13 +616,13 @@
 
       if (valid & ATTR_UID) {
          attrV2->mask |= HGFS_ATTR_VALID_USERID;
-         attrV2->userId = iattr->ia_uid;
+         attrV2->userId = KUID2UID(iattr->ia_uid);
          *changed = TRUE;
       }
 
       if (valid & ATTR_GID) {
          attrV2->mask |= HGFS_ATTR_VALID_GROUPID;
-         attrV2->groupId = iattr->ia_gid;
+         attrV2->groupId = KGID2GID(iattr->ia_gid);
          *changed = TRUE;
       }
 
@@ -1215,7 +1215,7 @@
              * a Linux machine and as root, but we might as well give it
              * a go.
              */
-            HgfsSetUidGid(dir, dentry, current_fsuid(), current_fsgid());
+            HgfsSetUidGid(dir, dentry, CURRENT_FSUID(), CURRENT_FSGID());
          }
 
          /*
