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