Charles, I've pulled a current snapshot from the git tree (ID 388ad45f27ef3288d2f1240a4e94d5849cf8201b) and when I tried to compile it into a 2.6.32 kernel for my OMAP board, compilation fails with: fs/yaffs2/yaffs_linux_allocator.c: In function 'yaffs_InitialiseRawTnodesAndObjects': fs/yaffs2/yaffs_linux_allocator.c:106: error: implicit declaration of function 'yaffs_DeviceToContext' fs/yaffs2/yaffs_linux_allocator.c:106: error: invalid type argument of '->' (have 'int') Grepping through the yaffs2 code for "yaffs_DeviceToContext", there's no declaration for it. Looking around for other uses of mount_id, I tried replacing yaffs_DeviceToContext with yaffs_DeviceToLC, and the world builds w/o error, but when I try to mount my NAND device (Micron 2KB block), the kernel oopses quite hard: OMAP-35x# cat /proc/mtd dev: size erasesize name mtd0: 00800000 00020000 "NOR fs #1" mtd1: 00020000 00020000 "NoLo-NAND" mtd2: 00220000 00020000 "Lboot-NAND" mtd3: 00c80000 00020000 "NAND fs #1" mtd4: 0f100000 00020000 "NAND fs #2" mtd5: 00040000 00020000 "u-boot Env-NAND" OMAP-35x# mkdir /mnt/yaffs OMAP-35x# mount -t yaffs /dev/mtdblock4 /mnt/yaffs yaffs: dev is 32505860 name is "mtdblock4" yaffs: passed flags "" yaffs: Attempting MTD mount of 31.4,"mtdblock4" yaffs: auto selecting yaffs2 slab error in kmem_cache_destroy(): cache `yaffs_o_1': Can't free all objects [] (unwind_backtrace+0x0/0xdc) from [] (kmem_cache_destroy+0x88/0xf0) [] (kmem_cache_destroy+0x88/0xf0) from [] (yaffs_DeinitialiseRawTnodesAndObjects+0x70/0xdc) [] (yaffs_DeinitialiseRawTnodesAndObjects+0x70/0xdc) from [] (yaffs_DeinitialiseTnodesAndObjects+0xc/0x1c) [] (yaffs_DeinitialiseTnodesAndObjects+0xc/0x1c) from [] (yaffs_GutsInitialise+0x584/0x85c) [] (yaffs_GutsInitialise+0x584/0x85c) from [] (yaffs_internal_read_super+0x8e8/0xb68) [] (yaffs_internal_read_super+0x8e8/0xb68) from [] (yaffs_internal_read_super_mtd+0x1c/0x2c) [] (yaffs_internal_read_super_mtd+0x1c/0x2c) from [] (get_sb_bdev+0x114/0x16c) [] (get_sb_bdev+0x114/0x16c) from [] (yaffs_read_super+0x18/0x20) [] (yaffs_read_super+0x18/0x20) from [] (vfs_kern_mount+0x4c/0xd0) [] (vfs_kern_mount+0x4c/0xd0) from [] (do_kern_mount+0x34/0xd8) [] (do_kern_mount+0x34/0xd8) from [] (do_mount+0x5ec/0x64c) [] (do_mount+0x5ec/0x64c) from [] (sys_mount+0x84/0xc4) [] (sys_mount+0x84/0xc4) from [] (ret_fast_syscall+0x0/0x2c) kmem_cache_create: duplicate cache yaffs_o_1 [] (unwind_backtrace+0x0/0xdc) from [] (kmem_cache_create+0x148/0x45c) [] (kmem_cache_create+0x148/0x45c) from [] (yaffs_InitialiseRawTnodesAndObjects+0x130/0x1bc) [] (yaffs_InitialiseRawTnodesAndObjects+0x130/0x1bc) from [] (yaffs_InitialiseTnodesAndObjects+0x18/0x4c) [] (yaffs_InitialiseTnodesAndObjects+0x18/0x4c) from [] (yaffs_GutsInitialise+0x5bc/0x85c) [] (yaffs_GutsInitialise+0x5bc/0x85c) from [] (yaffs_internal_read_super+0x8e8/0xb68) [] (yaffs_internal_read_super+0x8e8/0xb68) from [] (yaffs_internal_read_super_mtd+0x1c/0x2c) [] (yaffs_internal_read_super_mtd+0x1c/0x2c) from [] (get_sb_bdev+0x114/0x16c) [] (get_sb_bdev+0x114/0x16c) from [] (yaffs_read_super+0x18/0x20) [] (yaffs_read_super+0x18/0x20) from [] (vfs_kern_mount+0x4c/0xd0) [] (vfs_kern_mount+0x4c/0xd0) from [] (do_kern_mount+0x34/0xd8) [] (do_kern_mount+0x34/0xd8) from [] (do_mount+0x5ec/0x64c) [] (do_mount+0x5ec/0x64c) from [] (sys_mount+0x84/0xc4) [] (sys_mount+0x84/0xc4) from [] (ret_fast_syscall+0x0/0x2c) yaffs cache creation failed ==>> yaffs bug: fs/yaffs2/yaffs_linux_allocator.c 160 At this point I have to ask: 1) What should I use in yaffs_linux_allocator to replace DeviceToLinuxContext()? 2) If I guessed correctly by using DeviceToLC, then why does the kernel oops? 3) Have you built/tested the current git head on a Linux system? Thanks in advance!