View Single Post
Old 01-08-2011, 11:07 PM   #17
LoneTech
Zealot
LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.LoneTech knows the square root of minus one.
 
Posts: 135
Karma: 7767
Join Date: Oct 2010
Device: PocketBook Pro 903
For what it's worth, here is the dmesg output from trying to make two trivial modifications in poterm (touch foo, mv ebooks books):

Code:
<3>mmcblk1: error -84 transferring data, sector 7664, nr 1, card status 0x900
<3>end_request: I/O error, dev mmcblk1, sector 7664
<3>Buffer I/O error on device mmcblk1, logical block 7664
<4>lost page write due to I/O error on mmcblk1
<4>------------[ cut here ]------------
<4>WARNING: at fs/buffer.c:1247 mark_buffer_dirty+0x38/0xd4()
<1>Modules linked in:
<1>[<c0303260>] (dump_stack+0x0/0x14) from [<c004e00c>] (warn_slowpath+0x68/0x9c)
<1>[<c004dfa4>] (warn_slowpath+0x0/0x9c) from [<c00d8644>] (mark_buffer_dirty+0x38/0xd4)
<1> r3:00000828 r2:00000000
<1> r7:00000000 r6:cf223e00 r5:c04552cc r4:cf497c48
<1>[<c00d860c>] (mark_buffer_dirty+0x0/0xd4) from [<c0125bec>] (fat_remove_entries+0x68/0x14c)
<1> r5:cf497c48 r4:cf495c80
<1>[<c0125b84>] (fat_remove_entries+0x0/0x14c) from [<c012c1f0>] (vfat_rename+0x38c/0x3c8)
<1> r8:00000000 r7:cf495c80 r6:cf495c80 r5:00000000 r4:00000001
<1>[<c012be64>] (vfat_rename+0x0/0x3c8) from [<c00be898>] (vfs_rename+0x138/0x374)
<1>[<c00be760>] (vfs_rename+0x0/0x374) from [<c00c0940>] (sys_renameat+0x160/0x1d8)
<1>[<c00c07e0>] (sys_renameat+0x0/0x1d8) from [<c00c09dc>] (sys_rename+0x24/0x28)
<1>[<c00c09b8>] (sys_rename+0x0/0x28) from [<c002c9c0>] (ret_fast_syscall+0x0/0x2c)
<4>---[ end trace 852b6eab636ec444 ]---
<3>mmcblk1: error -84 transferring data, sector 7664, nr 1, card status 0x900
<3>end_request: I/O error, dev mmcblk1, sector 7664
<3>Buffer I/O error on device mmcblk1, logical block 7664
<4>lost page write due to I/O error on mmcblk1
<3>FAT: Filesystem error (dev mmcblk1)
<3>    vfat_rename: Filesystem corrupted (i_pos 122629)
<3>    File system has been set read-only
The card was left with a corrupt filesystem where both book and ebooks pointed to the same directory. That it ever wrote such a state indicates an oddity in the vfat filesystem driver, but the sd/mmc driver is what failed.

Notably, these writes should both be only a single sector (updating entries in the root directory). It should be entirely unaffected by card class. The reason it triggers the fault is probably rapid rewrites done by the vfat driver.

Last edited by LoneTech; 01-08-2011 at 11:10 PM.
LoneTech is offline   Reply With Quote