#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