xfs
[Top] [All Lists]

Re: SGI XFS on ppc

To: Thomas Graichen <graichen@xxxxxxxxxxxxx>, thomas.graichen@xxxxxxxxxxxxx
Subject: Re: SGI XFS on ppc
From: Steve Lord <lord@xxxxxxx>
Date: Wed, 02 Aug 2000 17:31:42 -0500
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: Message from Thomas Graichen <news-innominate.list.sgi.xfs@xxxxxxxxxxxxx> of "02 Aug 2000 22:04:31 GMT." <news2mail-8ma5tf$1ab$1@xxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-linux-xfs-announce@xxxxxxxxxxx
> Steve Lord <lord@xxxxxxx> wrote:
> 
> > Maybe scattering prinks through the xfs_readsb will tell us something
> > else.
> 
> ok - i have found the place where it hangs (by the help of lots of
> printk's and at the end also delays :-) - it loops in xfs_xlatesb
> through the while loop taking the "if (arch == ARCH_NOCONVERT" and
> the "if (dir>0) {" (not the "else" one in both cases) ... does this
> help you in any way ? - should i print out any variables there ?
> 
> so what next ?
>

My cheap answer is we wait for the Australians who did the endian conversion
work to come in to work.  A big endian version of this code has booted but
any changes this required have not been put back into the tree, I suspect
something in this area, since this code is dealing with byte swapping
and should be a noop in your case.

You could replace this code:

        sbp = XFS_BUF_TO_SBP(bp);
        xfs_xlatesb(XFS_BUF_PTR(bp), &(mp->m_sb), 1, ARCH_CONVERT, 
XFS_SB_ALL_BITS);
        if (error = xfs_mount_validate_sb(mp, &(mp->m_sb))) {
                cmn_err(CE_WARN, "XFS: SB validate failed\n");
                goto err;
        }

        mp->m_sb_bp = bp;

With this code:

        sbp = XFS_BUF_TO_SBP(bp);
        if (error = xfs_mount_validate_sb(mp, sbp)) {
                goto err;
        }

        mp->m_sb_bp = bp;
        mp->m_sb = *sbp;                                /* bcopy structure */

and see what happens. In theory you do not need the conversion.

Steve







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