xfs
[Top] [All Lists]

Re: New Bug...

To: overby@xxxxxxx (Glen Overby)
Subject: Re: New Bug...
From: Jim Mostek <mostek@xxxxxxx>
Date: Mon, 1 May 2000 16:22:24 -0500 (CDT)
Cc: mostek@xxxxxxx (Jim Mostek), cattelan@xxxxxxxxxxx (Russell Cattelan), dpd@xxxxxxxxxxx (Doug Doucette), dxm@xxxxxxxxxxxxxxxxxxxxxxxx (Daniel Moore), linux-xfs@xxxxxxxxxxx
In-reply-to: <200005012120.QAA71967@xxxxxxxxxxxxxxxxxxxxxxx> from "Glen Overby" at May 01, 2000 04:20:08 PM
Sender: owner-linux-xfs@xxxxxxxxxxx
Here is the start of my .workarea:

workarea.sm_tree_alias : 2.3.99pre2-xfs
workarea.sm_machine : bonnie.engr.sgi.com
workarea.sm_location : /isms/slinx/2.3.99pre2-xfs

Thanks,

Jim

>
>Jim Mostek wrote:
>> 
>> 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);
>
>Its a block format directory.  Its a small directory that has a
>single-level b+tree and the directory entries in one directory block.
>
>The XFS_DIR2_DATA_UNUSED_TAG_P_ARCH and INT_GET aren't in Irix; I
>assume this is mac's big-endian / little-endian code.
>
>So the ASSERT is comparing the tag values of an unused directory entry
>and its offset into the data block.  It's checking if the unused
>directory entry's 'tag' field is correct.  Bug could be a bad tag
>value or a bad assert.
>
>To know I'd need to know what those two macros do.  Tell me where your
>ism is; the last time I looked for it, I couldn't find it.
>
>If you've got a dump, get the values of: dup, d and *dup (it's an
>xfs_dir2_data_unused_t).  While you're at it, dump *d
>(xfs_dir2_data_hdr_t) so we can see the bestfree entries.  After that
>we'll look at the remove-name code that sets the tag value.
>
>Glen
>


<Prev in Thread] Current Thread [Next in Thread>