[BUG] cramfs+initrd: BOOM! (Re: ramdisk corruption problems)

From: vda (vda@port.imtp.ilyichevsk.odessa.ua)
Date: Thu Dec 20 2001 - 09:11:05 EST


[fifth (!) attempt, previous mails did not show up on lkml]
[This msg definitely does not want to make it into the list :-)]

At last I have found one definite bug (maybe there are others).
I was unable to load a minix initrd on any 2.4.12+ kernel. 2.4.10 is fine.
Thanks to Mike Galbraith <mikeg@wen-online.de> who said that he can load
minix initrds and sent me both .config and initrd. I found out that with his
.config I indeed can load my initrd. After many recompilations and reboots
(binary search :-) it turned out that compiled-in support for cramfs caused
initrds to be corrupted.

[update since 3rd attempt to reach lkml]
I did some debugging in fs/cramfs/inode.c:cramfs_read_super()
If I plant immediate "return 0;" there initrd loads.
If I place "return 0;" after "set_blocksize(sb->s_dev, PAGE_CACHE_SIZE);"
- BOOM! Kernel panic. Restoring blocksize to 1024 prior to return does NOT
help.
[end update]

This is the diff between 'good' and 'bad' .config:

--- .config.good Tue Dec 18 22:21:20 2001
+++ .config.bad Tue Dec 18 22:21:10 2001
@@ -716,7 +716,7 @@
 CONFIG_EFS_FS=m
 # CONFIG_JFFS_FS is not set
 # CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
+CONFIG_CRAMFS=y
 CONFIG_TMPFS=y
 CONFIG_RAMFS=y
 CONFIG_ISO9660_FS=y
@@ -767,7 +767,7 @@
 # CONFIG_NCPFS_NLS is not set
 # CONFIG_NCPFS_EXTRAS is not set
 # CONFIG_ZISOFS_FS is not set
-# CONFIG_ZLIB_FS_INFLATE is not set
+CONFIG_ZLIB_FS_INFLATE=y

 #
 # Partition Types

See?
Hope this info is useful.

--
vda
-
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/



This archive was generated by hypermail 2b29 : Sun Dec 23 2001 - 21:00:21 EST