Thread (1 message) 1 message, 1 author, 2009-12-07

Strange jffs2 behaviour

From: Juergen Beisert <hidden>
Date: 2009-12-07 18:07:53

On Freitag, 4. Dezember 2009, Juergen Beisert wrote:
Hi,

I'm using a 2.6.31.6 kernel here to work on an S3C2410 based CPU card and
three partitions in my 32 MiB NAND flash. Flash can be programmed by the
boot loader (root filesystem in one partition) or erased (the other two
partitions are currently empty).

System comes up with the root filesystem in the first partition and mounts
the other two partitions from some init scripts.

$ mount
rootfs on / type rootfs (rw)
/dev/root on / type jffs2 (rw,relatime)
[...]
/dev/mtdblock3 on /mnt/applicat type jffs2 (rw,noatime)
/dev/mtdblock4 on /mnt/data type jffs2 (rw,noatime)

$ df
/dev/root                12416     12072       344  97% /
[...]
/dev/mtdblock3            8192       436      7756   5% /mnt/applicat
/dev/mtdblock4           10240       480      9760   5% /mnt/data

(the 5% in /dev/mtdblock3+4 are my sample files, to check if writing files
is working)

I can copy data from the root filesystem partition to the other two
partitions, run a "sync" and reboot and all the files are still present.

But when I simply unmount one of the two other partitions, I get:

JFFS2 notice: (417) jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in
node header at 0x1be9e0. JFFS2 warning: (417) jffs2_do_read_inode_internal:
no data nodes found for ino #170 iget() failed for ino #170
JFFS2 warning: (417) jffs2_get_inode_nodes: Eep. No valid nodes for ino
#170. JFFS2 warning: (417) jffs2_do_read_inode_internal: no data nodes
found for ino #170

And nothing else is working any more. E.g. any further access to any other
partition ends with something like this:

JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in
node header at 0x1be8d8. JFFS2 warning: (428) jffs2_do_read_inode_internal:
no data nodes found for ino #168 iget() failed for ino #168
JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in
node header at 0x1b4dd4. JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong
magic bitmask 0x0000 in node header at 0x1b4774. JFFS2 notice: (428)
jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in node header at
0x1b4000. JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong magic bitmask
0x0000 in node header at 0x1b3704. JFFS2 notice: (428)
jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in node header at
0x1b300c. [...]
JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in
node header at 0x1a18c8. JFFS2 notice: (428) jffs2_get_inode_nodes: Wrong
magic bitmask 0x0000 in node header at 0x1a108c. JFFS2 notice: (428)
jffs2_get_inode_nodes: Wrong magic bitmask 0x0000 in node header at
0x1a08e0. JFFS2 warning: (428) jffs2_do_read_inode_internal: no data nodes
found for ino #164 Erase at 0x001a4000 failed immediately: errno -5

Any idea what can be wrong here?
For the records: The S3C2410 NFC driver disables the clock for the NFC unit 
when the NAND is IDLE and "MTD_NAND_S3C2410_CLKSTOP=y". And if one unmounts a 
NAND partition it seems to disable the clock for ever. So, all further 
accesses to the NAND device are failing...

With "MTD_NAND_S3C2410_CLKSTOP=n" the system works as expected (also on 
2.6.32).

jbe

-- 
Pengutronix e.K.                              | Juergen Beisert             |
Linux Solutions for Science and Industry      | Phone: +49-8766-939 228     |
Vertretung Sued/Muenchen, Germany             | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686              | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help