Revision 37f13561de6039b3a916d1510086030d097dea0f authored by Eric Sandeen on 10 January 2013, 16:41:48 UTC, committed by Ben Myers on 16 January 2013, 22:08:55 UTC
Dave Jones hit this assert when doing a compile on recent git, with
CONFIG_XFS_DEBUG enabled:

XFS: Assertion failed: (char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)), file: fs/xfs/xfs_dir2_data.c, line: 828

Upon further digging, the tag found by xfs_dir2_data_unused_tag_p(dup)
contained "2" and not the proper offset, and I found that this value was
changed after the memmoves under "Use a stale leaf for our new entry."
in xfs_dir2_block_addname(), i.e.

                        memmove(&blp[mid + 1], &blp[mid],
                                (highstale - mid) * sizeof(*blp));

overwrote it.

What has happened is that the previous call to xfs_dir2_block_compact()
has rearranged things; it changes btp->count as well as the
blp array.  So after we make that call, we must recalculate the
proper pointer to the leaf entries by making another call to
xfs_dir2_block_leaf_p().

Dave provided a metadump image which led to a simple reproducer
(create a particular filename in the affected directory) and this
resolves the testcase as well as the bug on his live system.

Thanks also to dchinner for looking at this one with me.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Tested-by: Dave Jones <davej@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
1 parent ab7eac2
Raw File
README.hp300
HP300 notes
-----------

The Linux/HP web page is at <http://www.tazenda.demon.co.uk/phil/linux-hp/>

Currently only 9000/340 machines have been tested.  Any amount of RAM should
work now but I've only tried 16MB and 12MB.

The serial console is probably broken at the moment but the Topcat/HIL keyboard
combination seems to work for me.  Your mileage may vary.

The LANCE driver works after a fashion but only if you reset the chip before
every packet.  This doesn't make for very speedy operation.

back to top