Re: Large File support and blocks.

From: Richard Henderson (rth@twiddle.net)
Date: Fri Sep 01 2000 - 12:39:43 EST


On Fri, Sep 01, 2000 at 03:15:27PM +0200, Andi Kleen wrote:
> The previous analysis was not quite right though (%cl is actually loaded,
> just %eax gets bogus input from the long long shift)

Perhaps, but it's sure not obvious:

        bh->b_blocknr = (long)mp->pbm_bn +
                (mp->pbm_offset >> inode->i_sb->s_blocksize_bits);
        bh->b_blocknr >>= block_bits;

        movl %eax,20(%esp) ; store shifted pbm_offset to temporary
        movl %edx,24(%esp) ; "
        movl 20(%esp),%eax ; load low part
        addl (%esi),%eax ; b_blocknr = pbm_bn + pbm_offset
        movl %ebp,%ecx ; load block_bits
        shrl %cl,%eax ; b_blocknr >> block_bits

I've not got 2.95 handy, and your test case isn't executable,
so its difficult to see exactly what might be wrong here.

r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:11 EST