[parisc-linux] documented Oops running big-endian reiserfs on parisc architecture
Matthew Wilcox
willy@debian.org
Sun, 2 Sep 2001 15:00:23 +0100
On Sun, Sep 02, 2001 at 10:55:38AM +0200, thunder7@xs4all.nl wrote:
> ReiserFS version 3.6.25
> bonnie[163]: Unaligned data reference 28
As it says, an unaligned data reference.
> r0-3 00000000 102ec550 10197d0c 26f24838
> IASQ: 00000000 00000000 IAOQ: 10197d10 10197d14
In kernel mode.
> 10197d10: 0c 7c 10 93 ldw e(sr0,r3),r19
r3 is 26f24838, and offset `e' from that is unaligned.
> which makes the error somewhere around here in
> fs/reiserfs/namei.c, function reiserfs_add_entry, after call to
> padd_item, before call to reiserfs_find_entry:
>
> /* copy name */
> memcpy ((char *)(deh + 1), name, namelen);
> /* padd by 0s to the 4 byte boundary */
> padd_item ((char *)(deh + 1), ROUND_UP (namelen), namelen);
>
> /* entry is ready to be pasted into tree, set 'visibility' and 'stat data in entry' attributes */
> mark_de_without_sd (deh);
> visible ? mark_de_visible (deh) : mark_de_hidden (deh);
>
> /* find the proper place for the new entry */
> memset (bit_string, 0, sizeof (bit_string));
> de.de_gen_number_bit_string = (char *)bit_string;
> retval = reiserfs_find_entry (dir, name, namelen, &path, &de);
I suspect mark_de_without_sd is an inlined function/macro and this will
be where the unaligned data reference is happening.
--
Revolutions do not require corporate support.