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
: [<c011c338>] lr : [<c011c338>]
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:
[<c011c328>] (yaffs_GetObjectInode+0x0/0x18) from [<c01154bc>]
(yaffs_readdir+0x1f8/0x2b4)
[<c01152c4>]
(yaffs_readdir+0x0/0x2b4) from [<c0096a68>]
(vfs_readdir+0xb0/0xd0)
[<c00969b8>] (vfs_readdir+0x0/0xd0) from
[<c0096f98>] (sys_getdents64+0x6c/0xc4)
r8 = C0F876E0 r7 =
FFFFFFF7 r6 = 00001000 r5 = 00000000
r4 = 0008E110
[<c0096f2c>] (sys_getdents64+0x0/0xc4) from [<c0033f20>]
(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++;
}
}