Messages in this thread | | | Date | Sat, 7 Aug 2004 14:18:29 +0100 | From | Russell King <> | Subject | [BUG] 2.6.8-rc3 jffs2 unable to read filesystems |
| |
The following two messages sum up the problem:
JFFS2 compression type 0x5a06 not avaiable. Error: jffs2_decompress returned -5
It appears that a jffs2 change committed on July 15th has caused recent 2.6.8-rc kernels to be incompatible with jffs2 filesystems modified by previous kernel versions.
The "new format" jffs2 filesystem uses both "compr" and "usercompr" of the jffs2_raw_inode structure, whereas previous implementations left "usercompr" uninitialised and thus contains random data.
This can be seen by tracing through the code from jffs2_alloc_raw_inode() and noticing that previous implementations do not initialise this field - AFAICS kmem_cache_alloc() does not guarantee that memory returned by this function will be initialised.
Therefore, recent 2.6.8-rc kernels must _NOT_ use this field if they wish to remain compatible with existing jffs2 filesystems.
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |