--- a/fs/mini_fo/inode.c
+++ b/fs/mini_fo/inode.c
@@ -439,7 +439,7 @@
 	int err=0;
 	dentry_t *hidden_sto_dentry;
 	dentry_t *hidden_sto_dir_dentry;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
         umode_t mode;
 #endif
 
@@ -466,7 +466,7 @@
 	down(&hidden_sto_dir_dentry->d_inode->i_sem);
 #endif
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
 	mode = S_IALLUGO;
 	err = vfs_symlink(hidden_sto_dir_dentry->d_inode,
 			  hidden_sto_dentry, symname, mode);
@@ -1151,7 +1151,9 @@
 	 *		goto out;
 	 */
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+	err = generic_permission(hidden_inode, mask, NULL);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 	err = permission(hidden_inode, mask, nd);
 #else
 	err = permission(hidden_inode, mask);
