--- a/fs/yaffs2/yaffs_vfs_glue.c
+++ b/fs/yaffs2/yaffs_vfs_glue.c
@@ -2793,6 +2793,15 @@ static struct super_block *yaffs_interna
 		return NULL;
 	}
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)
+	T(YAFFS_TRACE_OS, (TSTR(" erase %p\n"), mtd->_erase));
+	T(YAFFS_TRACE_OS, (TSTR(" read %p\n"), mtd->_read));
+	T(YAFFS_TRACE_OS, (TSTR(" write %p\n"), mtd->_write));
+	T(YAFFS_TRACE_OS, (TSTR(" readoob %p\n"), mtd->_read_oob));
+	T(YAFFS_TRACE_OS, (TSTR(" writeoob %p\n"), mtd->_write_oob));
+	T(YAFFS_TRACE_OS, (TSTR(" block_isbad %p\n"), mtd->_block_isbad));
+	T(YAFFS_TRACE_OS, (TSTR(" block_markbad %p\n"), mtd->_block_markbad));
+#else
 	T(YAFFS_TRACE_OS, (TSTR(" erase %p\n"), mtd->erase));
 	T(YAFFS_TRACE_OS, (TSTR(" read %p\n"), mtd->read));
 	T(YAFFS_TRACE_OS, (TSTR(" write %p\n"), mtd->write));
@@ -2800,6 +2809,7 @@ static struct super_block *yaffs_interna
 	T(YAFFS_TRACE_OS, (TSTR(" writeoob %p\n"), mtd->write_oob));
 	T(YAFFS_TRACE_OS, (TSTR(" block_isbad %p\n"), mtd->block_isbad));
 	T(YAFFS_TRACE_OS, (TSTR(" block_markbad %p\n"), mtd->block_markbad));
+#endif
 	T(YAFFS_TRACE_OS, (TSTR(" %s %d\n"), WRITE_SIZE_STR, WRITE_SIZE(mtd)));
 	T(YAFFS_TRACE_OS, (TSTR(" oobsize %d\n"), mtd->oobsize));
 	T(YAFFS_TRACE_OS, (TSTR(" erasesize %d\n"), mtd->erasesize));
@@ -2828,6 +2838,15 @@ static struct super_block *yaffs_interna
 
 	if (yaffs_version == 2) {
 		/* Check for version 2 style functions */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0))
+		if (!mtd->_erase ||
+		    !mtd->_block_isbad ||
+		    !mtd->_block_markbad ||
+		    !mtd->_read ||
+		    !mtd->_write ||
+		    !mtd->_read_oob ||
+		    !mtd->_write_oob) {
+#else
 		if (!mtd->erase ||
 		    !mtd->block_isbad ||
 		    !mtd->block_markbad ||
@@ -2839,6 +2858,7 @@ static struct super_block *yaffs_interna
 		    !mtd->write_ecc ||
 		    !mtd->read_ecc || !mtd->read_oob || !mtd->write_oob) {
 #endif
+#endif
 			T(YAFFS_TRACE_ALWAYS,
 			  (TSTR("yaffs: MTD device does not support required "
 			   "functions\n")));
@@ -2855,6 +2875,13 @@ static struct super_block *yaffs_interna
 		}
 	} else {
 		/* Check for V1 style functions */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0))
+		if (!mtd->_erase ||
+		    !mtd->_read ||
+		    !mtd->_write ||
+		    !mtd->_read_oob ||
+		    !mtd->_write_oob) {
+#else
 		if (!mtd->erase ||
 		    !mtd->read ||
 		    !mtd->write ||
@@ -2864,6 +2891,7 @@ static struct super_block *yaffs_interna
 		    !mtd->write_ecc ||
 		    !mtd->read_ecc || !mtd->read_oob || !mtd->write_oob) {
 #endif
+#endif
 			T(YAFFS_TRACE_ALWAYS,
 			  (TSTR("yaffs: MTD device does not support required "
 			   "functions\n")));