#4184 BLOC First D: JFFS2 Dirent Anomaly
Zarro Boogs per Child
bugtracker at laptop.org
Thu Oct 18 20:14:26 EDT 2007
#4184: JFFS2 Dirent Anomaly
--------------------------------+-------------------------------------------
Reporter: wmb at firmworks.com | Owner: mstone
Type: defect | Status: new
Priority: blocker | Milestone: First Deployment, V1.0
Component: kernel | Version:
Resolution: | Keywords:
Verified: 0 |
--------------------------------+-------------------------------------------
Comment(by dilinger):
I tried the latest vserver patch, along with the test script for
reproducing the bug. Note that with
2.6.22-20071015.2.olpc.d6e22ac24d4182d (which includes jffs2 fixes), I
don't get the same error as Mitch; the file never gets created improperly
because jffs2 sanity checking catches it. Instead, I get a "Error in
jffs2_write_dirent() -- name contains zero bytes!" both with and without
the latest vserver patch. Here's what happens with the VS 0.4.8 patch:
{{{
-bash-3.2# ./test
vserver.debug_misc = 7
[ 87.444815] vxD: cow_break_link(�za�)
[ 87.449334] vxD: path_lookup(old): 0
[ 87.453556] vxD: old path �/root/t/za� [�za�:2]
[ 87.458994] vxD: temp copy �/root/t/za��
[ 87.463609] vxD: path_lookup(new): 0
[ 87.467831] vxD: lookup_create(new): cbc6d918 [�za��:3]
[ 87.474112] vxD: vfs_create(new): 0
[ 87.478228] vxD: dentry_open(old): c10d90c0
[ 87.488775] vxD: dentry_open(new): cbef99a0
[ 87.494051] vxD: do_splice_direct: 5
[ 87.498385] vxD: vfs_rename: [�za��:3] -> [�za�:2]
[ 87.504252] vxD: vfs_rename: 0
[ 87.508238] vxD: cow_break_link(�zb�)
[ 87.512793] vxD: path_lookup(old): 0
[ 87.517126] vxD: old path �/root/t/zb� [�zb�:2]
[ 87.522690] vxD: temp copy �/root/t/zb��
[ 87.527425] vxD: path_lookup(new): 0
[ 87.531846] vxD: lookup_create(new): cb98ba38 [�zb��:3]
[ 87.538121] vxD: vfs_create(new): 0
[ 87.542452] vxD: dentry_open(old): cc157ca0
[ 87.547468] vxD: dentry_open(new): cbef9760
[ 87.552640] vxD: do_splice_direct: 5
[ 87.556965] vxD: vfs_rename: [�zb��:3] -> [�zb�:2]
[ 87.562818] vxD: vfs_rename: 0
[ 87.566677] vxD: cow_break_link(�zc�)
[ 87.571206] vxD: path_lookup(old): 0
[ 87.575539] vxD: old path �/root/t/zc� [�zc�:2]
[ 87.581607] vxD: cow_break_link(�zc�)
[ 87.586044] vxD: path_lookup(old): 0
[ 87.590652] vxD: temp copy �/root/t/zc��
[ 87.595383] vxD: path_lookup(new): 0
[ 87.599817] vxD: lookup_create(new): cb98b9a8 [�zc��:3]
[ 87.606088] vxD: vfs_create(new): 0
[ 87.610428] vxD: dentry_open(old): c10d90c0
[ 87.615447] vxD: dentry_open(new): ce5246c0
[ 87.620613] vxD: do_splice_direct: 5
[ 87.641221] vxD: vfs_rename: [�zc��:3] -> [�zc�:2]
[ 87.663048] vxD: vfs_rename: 0
[ 87.682516] vxD: old path �/root/t/zc� [� zc�:3]
[ 87.705706] vxD: temp copy �/root/t/zc��
[ 87.725877] vxD: path_lookup(new): 0
[ 87.745148] vxD: lookup_create(new): cbf2eac8 [�zc��:3]
[ 87.766440] vxD: vfs_create(new): 0
[ 87.785794] vxD: dentry_open(old): cbef96a0
[ 87.805994] vxD: dentry_open(new): cc0bce60
[ 87.825865] vxD: do_splice_direct: 5
[ 87.844845] vxD: vfs_rename: [�zc��:3] -> [� zc�:3]
[ 87.865387] Error in jffs2_write_dirent() -- name contains zero bytes!
[ 87.888397] Directory inode #36694, name at *0xcbc6d594 "zc"->ino
#36968, nam
e_crc 0x17b6d5e2
[ 87.914379] WARNING: at fs/jffs2/write.c:226 jffs2_write_dirent()
[ 87.938186] [<c04c3675>] jffs2_write_dirent+0x99/0x3c4
[ 87.961468] [<c04c1974>] jffs2_reserve_space+0x17e/0x1a6
[ 87.985049] [<c04c3e76>] jffs2_do_link+0x115/0x168
[ 88.008112] [<c04be9ba>] jffs2_rename+0xc9/0x245
[ 88.030962] [<c0466cf4>] vfs_rename+0x2d0/0x428
[ 88.053660] [<c04694d9>] cow_break_link+0x48f/0x5b8
[ 88.076851] [<c0629723>] _spin_unlock+0xf/0x23
[ 88.099488] [<c04e391a>] _atomic_dec_and_lock+0x22/0x2c
[ 88.123013] [<c0629723>] _spin_unlock+0xf/0x23
[ 88.145806] [<c04e391a>] _atomic_dec_and_lock+0x22/0x2c
[ 88.169787] [<c06280bd>] __sched_text_start+0x7ad/0x7dd
[ 88.193920] [<c046fc6d>] __d_lookup+0x178/0x1a1
[ 88.217286] [<c04698de>] open_namei+0x282/0x5c6
[ 88.240689] [<c045dea3>] do_filp_open+0x2a/0x3e
[ 88.264178] [<c045dc31>] get_unused_fd+0x120/0x12a
[ 88.288071] [<c04e7ee7>] strncpy_from_user+0x33/0x4c
[ 88.312174] [<c045defd>] do_sys_open+0x46/0xcd
[ 88.335723] [<c045dfbd>] sys_open+0x1c/0x1e
[ 88.359063] [<c0403cfe>] sysenter_past_esp+0x5f/0x85
[ 88.383323] [<c0620000>] ip6fl_seq_next+0xf/0x1d
[ 88.407331] =======================
[ 88.429993] vxD: vfs_rename: -5
-bash-3.2# [ 115.958444] JFFS2 notice: (1334) check_node_data: wrong data
CRC i
n data node at 0x2c774604: read 0x881a82a8, calculated 0x5d770f97.
}}}
--
Ticket URL: <https://dev.laptop.org/ticket/4184#comment:16>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list