--- a/vboxsf/dirops.c
+++ b/vboxsf/dirops.c
@@ -127,13 +127,11 @@
     TRACE();
 
-    sf_g = GET_GLOB_INFO(dir->f_dentry->d_inode->i_sb);
+    inode = GET_F_DENTRY(dir)->d_inode;
+    sf_i = GET_INODE_INFO(inode);
+    sf_g = GET_GLOB_INFO(inode->i_sb);
     sf_d = dir->private_data;
 
     BUG_ON(!sf_g);
     BUG_ON(!sf_d);
-
-    inode = dir->f_dentry->d_inode;
-    sf_i = GET_INODE_INFO(inode);
-
     BUG_ON(!sf_i);

--- a/vboxsf/regops.c
+++ b/vboxsf/regops.c
@@ -109,5 +109,5 @@
     size_t left = size;
     ssize_t total_bytes_read = 0;
-    struct inode *inode = file->f_dentry->d_inode;
+    struct inode *inode = GET_F_DENTRY(file)->d_inode;
     struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
     struct sf_reg_info *sf_r = file->private_data;
@@ -184,5 +184,5 @@
     size_t left = size;
     ssize_t total_bytes_written = 0;
-    struct inode *inode = file->f_dentry->d_inode;
+    struct inode *inode = GET_F_DENTRY(file)->d_inode;
     struct sf_inode_info *sf_i = GET_INODE_INFO(inode);
     struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
@@ -455,5 +455,5 @@
 static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int *type)
 # define SET_TYPE(t) *type = (t)
-#else /* LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 0) */
+#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) */
 static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int unused)
 # define SET_TYPE(t)
@@ -466,5 +466,5 @@
     int err;
     struct file *file = vma->vm_file;
-    struct inode *inode = file->f_dentry->d_inode;
+    struct inode *inode = GET_F_DENTRY(file)->d_inode;
     struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
     struct sf_reg_info *sf_r = file->private_data;
@@ -606,5 +606,5 @@
 static int sf_readpage(struct file *file, struct page *page)
 {
-    struct inode *inode = file->f_dentry->d_inode;
+    struct inode *inode = GET_F_DENTRY(file)->d_inode;
     struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);
     struct sf_reg_info *sf_r = file->private_data;
--- a/vboxsf/vfsmod.h
+++ b/vboxsf/vfsmod.h
@@ -146,5 +146,5 @@
 #endif
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (2, 6, 19) || defined(KERNEL_FC6)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined(KERNEL_FC6)
 /* FC6 kernel 2.6.18, vanilla kernel 2.6.19+ */
 # define GET_INODE_INFO(i)       ((struct sf_inode_info *) (i)->i_private)
@@ -156,4 +156,10 @@
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
+# define GET_F_DENTRY(f)        (f->f_path.dentry)
+#else
+# define GET_F_DENTRY(f)        (f->f_dentry)
 #endif
 
+#endif
+