On Tuesday 12 January 2010 14:42:09 김원일 wrote: > hello.... charles > > I do display errorr point (red color). > > In yaffs_fs.c and yaffs_guts.c, please... confirm to file. > > I know...yaffs_GetObjectInode() function is getting i-node. > > I-node had "NULL" value. > > this time, yaffs filesystem display error message. > > I think to lost I-node. why do lost I-node? > what is reason? you will know me. > > thank you for you... > > as soon as.... I wish to send reason via e-mail to me. > > > > > > > > > ---------------------------------------------------- > Kernel error Message > ---------------------------------------------------- > > [root@hello /mnt/mtd3/up_wait_]# ls > Unable to handle kernel NULL pointer dereference at virtual address > 00000030 pgd = c3e8c000 > [00000030] *pgd=33e3f031, *pte=00000000, *ppte=00000000 > Internal error: Oops: 17 [#1] > Modules linked in: > CPU: 0 > PC is at yaffs_GetObjectInode+0x10/0x18 > LR is at yaffs_GetObjectInode+0x10/0x18 > pc : [] lr : [] Not tainted > sp : c3d77df4 ip : c3d77df4 fp : c3d77e00 > r10: 00000002 r9 : 00000002 r8 : c04924d4 > r7 : 00000001 r6 : c3e3d0d0 r5 : c04924b4 r4 : 0000002f > r3 : 00000004 r2 : c3d77e24 r1 : 000014b2 r0 : 00000000 > Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user > Control: 717F Table: 33E8C000 DAC: 00000015 > Process ls (pid: 934, stack limit = 0xc3d76194) > Stack: (0xc3d77df4 to 0xc3d78000) > 7de0: c3d77f4c c3d77e04 > c01154bc 7e00: c011c338 00000000 00000001 00000004 c05651a4 c0f87700 > c0e4b000 c0096db8 7e20: c3d77f74 34303255 36342e30 30333030 34312e30 > 35303736 2e343432 39303032 7e40: 30323031 37323731 312e3632 30303634 > 00303033 00000000 00000000 00000000 7e60: 00000000 00000000 00000000 > 00000000 00000000 00000000 00000000 00000000 7e80: 00000000 00000000 > 00000000 00000000 00000000 00000000 00000000 00000000 7ea0: 00000000 > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 7ec0: > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > 7ee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > 00000000 7f00: 00000000 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 7f20: 00000000 c0f876e0 c3e3d140 c3e3d0d0 fffffffe > c0096db8 c3d76000 401babcc 7f40: c3d77f70 c3d77f50 c0096a68 c01152d4 > 0008e110 00000000 00001000 fffffff7 7f60: c0f876e0 c3d77fa4 c3d77f74 > c0096f98 c00969c8 0008e140 0008e128 00000fd0 7f80: ffffffea 00001000 > 000002b4 00000000 000000d9 c00340a4 00000000 c3d77fa8 7fa0: c0033f20 > c0096f3c 00001000 000002b4 00000003 0008e110 00001000 00000278 7fc0: > 00001000 000002b4 00000000 000028cc 00000000 0008e0e0 401babcc beee1cf8 > 7fe0: 0008e110 beee1ca0 401bb0d0 4013473c 20000010 00000003 00000200 > 00000440 Backtrace: > [] (yaffs_GetObjectInode+0x0/0x18) from [] > (yaffs_readdir+0x1f8/0x2b4) [] (yaffs_readdir+0x0/0x2b4) from > [] (vfs_readdir+0xb0/0xd0) [] (vfs_readdir+0x0/0xd0) > from [] (sys_getdents64+0x6c/0xc4) r8 = C0F876E0 r7 = FFFFFFF7 > r6 = 00001000 r5 = 00000000 > r4 = 0008E110 > [] (sys_getdents64+0x0/0xc4) from [] > (ret_fast_syscall+0x0/0x2c) r8 = C00340A4 r7 = 000000D9 r6 = 00000000 r5 > = 000002B4 > r4 = 00001000 > Code: e1a0c00d e92dd800 e24cb004 ebffed57 (e5900030) > Segmentation fault > > ----------------------------------------------------- > > > > > # source contens > > static int yaffs_readdir(struct file *f, void *dirent, filldir_t filldir) > in yaffs_fs.c > > list_for_each(i, &obj->variant.directoryVariant.children) { > curoffs++; > if (curoffs >= offset) { > l = list_entry(i, yaffs_Object, siblings); > > yaffs_GetObjectName(l, name, > YAFFS_MAX_NAME_LENGTH + 1); > T(YAFFS_TRACE_OS, > (KERN_DEBUG "yaffs_readdir: %s inode %d\n", name, > yaffs_GetObjectInode(l))); > > if (filldir(dirent, > name, > strlen(name), > offset, > yaffs_GetObjectInode(l), > yaffs_GetObjectType(l)) > < 0) { > goto up_and_out; > } > > offset++; > f->f_pos++; > } > } This code has been changed. Please try with the latest. If you still get the problem then please provide a test case for this. -- CHarles