JFFS2 problem

Hi All,

Don't know how to get onto the JFFS2 mailing list. So I post my case here:

I'm using uClinux 2.4.29 on microblaze. I'm using an Atmel dataflash and the MTD system. I'm trying to mount on a MTD partition with JFFS2. I can mount it, write some files and unmount it. When I mount it again as read only, I can read the files, but if mounting read-write, linux dies (no output, no network response). The last JFFS2/MTD debug output is shown below. It seems something goes wrong when it want's to erase 4 sectors as part of garbage collection running in a thread process. Only one file of approx. 8K was copied to the disk (why would garbage collection be neccsary ?). Flash sector size is 1056 bytes.

--------------------------------------- adding node 2000-200d @0x0000ce4c on flash, newfrag *81ec8394 j_a_f_d_t_f: skipping frag 0x0000-0x0720; phys 0x0000ebd0 (*81ec8344->81ec8354) j_a_f_d_t_f: skipping frag 0x0720-0x0fa7; phys 0x0000e70c (*81ec8354->81ec8364) j_a_f_d_t_f: skipping frag 0x0fa7-0x1000; phys 0x0000e2ec (*81ec8364->81ec8374) j_a_f_d_t_f: skipping frag 0x1000-0x1763; phys 0x0000d720 (*81ec8374->81ec8384) j_a_f_d_t_f: skipping frag 0x1763-0x2000; phys 0x0000d26c (*81ec8384->00000000) Pass 1 complete Pass 2 (re)starting Pass 2: ino #1, nlink 1, ic 81ec92d0, nodes 81ecc824 Pass 2: ino #2, nlink 1, ic 81ec92bc, nodes 81ecc844 Pass 2 complete Pass 3: ino #1, ic 81ec92d0, nodes 81ecc824 Pass 3: ino #2, ic 81ec92bc, nodes 81ecc844 Pass 3 complete jffs2_read_super(): Getting root inode jffs2_read_inode(): inode->i_ino == 1 getting inocache jffs2_get_ino_cache(): ino 1 jffs2_get_ino_cache found 81ec92d0 for ino 1 jffs2_read_inode(): Got inocache at 81ec92d0 jffs2_read_inode(): ino #1 nlink is 1 jffs2_get_inode_nodes(): ino #1 Node at 0000f7d0 is a dirent node Adding fd "services", ino #2 jffs2_add_fd_to_list( 802ba544, 81ed1c90 (->00000000)) Dirent "services" (hash 0x5fdbfbf0, ino #2 jffs2_read_inode() returning jffs2_read_super(): d_alloc_root() JFFS2: Garbage collect thread is pid 32 thread_should_wake(): nr_free_blocks 51, nr_erasing_blocks 4, dirty_size

0x18f4 jffs2_garbage_collect_thread sleeping... thread_should_wake(): nr_free_blocks 51, nr_erasing_blocks 4, dirty_size 0x18f4 Starting erase of pending block 0x0000f360 Freeing all node refs for eraseblock offset 0x0000f360 Removed nodes in range 0x0000f360-0x0000f780 from ino #2 After remove_node_refs_from_ino_list: 0x0000f9f4(1)->0x0000f800(1)->0x0000f78c(1)->0x0000f5e4(1)->0x0000ef4c(1)-> 0x0000ebd0(0)->0x0000eb2c(1)->0x0000e70c(0)->0x0000e58c(1)->0x0000e384(1)-> 0x0000e2ec(0)->0x0000e160(1)->0x0000decc(1)->0x0000daac(1)->0x0000d720(0)-> 0x0000d68c(1)->0x0000d26c(0)->0x0000ce4c(0)->0x81ecc844(0)->

---------------------------------------

Thank's for any help on this.

Finn

Reply to
Finn S. Nielsen
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.