Glen Overby knows the dir2 format the best after
Doug Doucette.
Glen, Doug, any suggestions on what to look for
when hitting the last assert below:
/*
* Loop over the data/unused entries.
*/
while (p < endp) {
dup = (xfs_dir2_data_unused_t *)p;
/*
* If it's unused, look for the space in the bestfree table.
* If we find it, account for that, else make sure it
* doesn't need to be there.
*/
if (INT_GET(dup->freetag, ARCH_UNKNOWN) ==
XFS_DIR2_DATA_FREE_TAG) {
ASSERT(lastfree == 0);
ASSERT(INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P_ARCH(dup,
ARCH_UNK
NOWN), ARCH_UNKNOWN) ==
(char *)dup - (char *)d);
Jim
>
>This is a multi-part message in MIME format.
>--------------418DE3B8CD1757F96C9E7BCC
>Content-Type: text/plain; charset=us-ascii
>Content-Transfer-Encoding: 7bit
>
>I haven't looked at it...
>any ideas of hand before I go digging to far.
>
>
>
>--
>Russell Cattelan
>cattelan@xxxxxxxxxxx
>
>
>
>--------------418DE3B8CD1757F96C9E7BCC
>Content-Type: text/plain; charset=us-ascii;
> name="bug"
>Content-Transfer-Encoding: 7bit
>Content-Disposition: inline;
> filename="bug"
>
>XFS assertion failed: INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P_ARCH(dup,
>ARCH_UNKNOWN), ARCH_UNKNOWN) == (char *)dup - (char *)d, file:
>xfs_dir2_data.c, line: 155
>kernel BUG at xfs_debug.c:86!
>Entering kdb (0xc3614000) Panic: invalid operand
>due to panic @ 0xc8916215
>eax = 0x0000001e ebx = 0x0000000e ecx = 0xc028c6bc edx = 0xc028c6bc
>esi = 0xc0ba0160 edi = 0x00000029 esp = <kernel> eip = 0xc8916215
>ebp = 0xc3615ba0 ss = 0xc893752e cs = 0x00000010 eflags = 0x00010282
> ds = <kernel> es = 0x00000018 origeax = 0xffffffff ®s = 0xc3615b60
>kdb> bt
> EBP EIP Function(args)
>0xc3615ba0 0xc8916215 assfail+0x2d( 0xc8927c60, 0xc8927a37, 0x9b, 0x160,
>0xc0e9b014 )
>0xc3615be4 0xc88d93d7 xfs_dir2_data_check+0x217( 0xc58b0010, 0xc6a76000,
>0xc0e9b014, 0xc6a76000, 0xc0ba0160 )
>0xc3615c64 0xc88d8058 xfs_dir2_block_addname+0x6b8( 0xc3615c80, 0xc3615d5c,
>0xc3615d68, 0x4, 0x1 )
>0xc3615ce8 0xc88d6bd1 xfs_dir_node_replace+0x489( 0xc0e9b014, 0xc58b0010,
>0xc0aac7a0, 0x9, 0x20ffff )
>0xc3615da4 0xc890eab1 xfs_create+0x515( 0xc58b0028, 0xc0aac7a0, 0xc3615e98,
>0x0, 0x0 )
>0xc3615f08 0xc8917f2b linvfs_common_cr+0x10b( 0xc0abb0c0, 0xc0aac740, 0x8124,
>0x1, 0x0 )
>0xc3615f24 0xc891803c linvfs_create+0x18( 0xc0abb0c0, 0xc0aac740, 0x8124,
>0xc0abb114, 0xc0aac040 )
>0xc3615f48 0xc0136c32 vfs_create+0xbe( 0xc0abb0c0, 0xc0aac740, 0x124,
>0xc78c3e00, 0xffffffe9 )
>0xc3615f74 0xc0136e19 __open_namei+0x191( 0xc0b4c000, 0x8e42, 0x124, 0x0, 0x4
>)
>0xc3615f9c 0xc012f282 filp_open+0x56( 0xc0b4c000, 0x8e41, 0x124, 0x0,
>0xc3614000 )
>0xc3615fbc 0xc012f4ec sys_open+0x3c( 0x80737a8, 0x8e41, 0x124, 0xe41, 0x21 )
>0xc3615fd8 0xc010ace4 system_call+0x34
>
>
>--------------418DE3B8CD1757F96C9E7BCC--
>
|