[Yaffs] Oopsed GC in yaffs2

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Radoslav Deak
Date:  
To: yaffs
Subject: [Yaffs] Oopsed GC in yaffs2
charles,

i recently got my 2.6.9 kernel working with yaffs2 and 2k pages on 128MB
samsung mtd device.
when i was testing reliability of yaffs2 i got yaffs2 filesytem to a
strange state.
i have copied some larger (50MB) files on yaffs2 partition.
writing, remounting and rereading was all ok, no data corruption as far
as i know.
but when i tried to remove one of that large files, yaffs2 gc got corrupted.
removal of first file seems to passed, but now i could not remove any
other of remaining files.
i am supposed that it is related to the same problem already discussed

http://www.aleph1.co.uk/pipermail/yaffs/2005q1/000910.html

after remounting of yaffs2 partition i am able to reproduce that problem
easily..
please look at oops dump below for more details.

could you please point me out how have you modified yaffs_guts.c file
mentioned in message above ?

thanx,
rado

# rm /mnt/yaffs/hello.txt
Unable to handle kernel paging request at virtual address 00051d1b
 printing eip:
cf8b2bc8
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: yaffs2 nand_ide nand nand_ids nand_ecc 
via82cxxx_audio soundc
ore ac97_codec via_rhine mii ide_cd cdrom rtc
CPU:    0
EIP:    0060:[<cf8b2bc8>]    Not tainted VLI
EFLAGS: 00010283   (2.6.9-epia2)
EIP is at yaffs_FindObjectByNumber+0x28/0x60 [yaffs2]
eax: cdcc16f4   ebx: c3fcff3f   ecx: 00051d1b   edx: cdcc17ac
esi: ffffff3f   edi: cdcc2000   ebp: 00000000   esp: ce31dbfc
ds: 007b   es: 007b   ss: 0068
Process rm (pid: 480, threadinfo=ce31c000 task=cea98020)
Stack: ce31dc2c cdcc2000 0000002c cf8b3a3a cdcc2000 c3fcff3f 00000000 
ce6ea000
       000051b4 00000000 00000001 00000b00 aaaaaaaa 00000001 c3fcff3f 
0fa75a99
       c3f33c3f ffffffff 00000000 00000000 00000000 330003c3 55555555 
0000002c
Call Trace:
 [<cf8b3a3a>] yaffs_GarbageCollectBlock+0x23a/0x3c0 [yaffs2]
 [<cf8b3c28>] yaffs_CheckGarbageCollection+0x68/0xc0 [yaffs2]
 [<cf8b42b8>] yaffs_UpdateObjectHeader+0x48/0x2f0 [yaffs2]
 [<c01c5596>] part_read+0xb6/0xc0
 [<cf8b7656>] nandmtd2_ReadChunkWithTagsFromNAND+0x86/0xf0 [yaffs2]
 [<cf8b5d51>] yaffs_GetObjectName+0x101/0x120 [yaffs2]
 [<cf8b2fb9>] yaffs_ChangeObjectName+0x99/0xb0 [yaffs2]
 [<cf8b4f6c>] yaffs_UnlinkFile+0x6c/0x80 [yaffs2]
 [<cf8b512e>] yaffs_UnlinkWorker+0x8e/0xb0 [yaffs2]
 [<cf8b0e54>] yaffs_unlink+0x44/0x70 [yaffs2]
 [<c0145809>] vfs_unlink+0x129/0x170
 [<c01458e5>] sys_unlink+0x95/0x110
 [<c01475bd>] sys_ioctl+0x19d/0x1c0
 [<c01475c9>] sys_ioctl+0x1a9/0x1c0
 [<c0103697>] syscall_call+0x7/0xb
Code: 5b 5e c3 57 56 53 8b 5c 24 14 89 d8 b9 00 01 00 00 99 f7 f9 6b c2 
0c 8b 7c
 24 10 01 f8 8b 88 b8 00 00 00 89 d6 8d 90 b8 00 00 00 <8b> 01 8d 74 26 
00 39 d1
 74 1e 8d 41 f4 39 58 30 74 18 8b 09 8b
 Segmentation fault