xfs
[Top] [All Lists]

Re: buffer_head->b_size & ia64

To: Steve Lord <lord@xxxxxxx>
Subject: Re: buffer_head->b_size & ia64
From: dannf@xxxxxx (dann)
Date: Fri, 1 Nov 2002 17:19:18 -0700
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <1036193568.17202.234.camel@xxxxxxxxxxxxxxxxxxxx>
References: <20021101231258.GA28163@xxxxxxxxxxxxxxxxxxxx> <1036193568.17202.234.camel@xxxxxxxxxxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4i
ok, didn't realize the b_size change was to support large pages.
so, for my purposes (i'm using 8K pages), i should be able to just
patch fs.h back to defining b_size as a short & go on?  i'll try
that - thanks!

On Fri, Nov 01, 2002 at 05:32:48PM -0600, Steve Lord wrote:
> On Fri, 2002-11-01 at 17:12, Dann Frazier wrote:
> > hey,
> >   I was trying to test latest cvs to see if it resolves another issue, but
> > i began getting a panic on mount.  The problem is that the latest bjorn
> > patch for ia64 (0821) defines buffer_head->b_size as an int instead of a 
> > short.
> > (see include/linux/fs.h).
> > 
> > The following ASSERT is in page_buf.c:
> > 
> >         /* The b_size field of struct buffer_head is an unsigned short
> >          * ... we may need to split this request up.  [64K is too big]
> >          */
> >         ASSERT(sizeof(bh->b_size) == 2);
> >         while (sector > 0xffff) {
> >                 sector >>= 1;
> >                 blk_length++;
> >         }
> > 
> > Which causes the kernel to Oops on mount.  Which ia64 patch is currently 
> > merged
> > into the XFS tree?  Is there currently a hard dependency on this size
> > somewhere?
> > 
> 
> Hmm, looks like code to deal with 64K and larger pages doesn't it. This
> tree has no ia64 patch merged into it at all. The code probably needs to
> mutate into something like (and drop the assert):
> 
>       while (sector > ((1 << NBBY * sizeof(bh->b_size)) - 1)) {
>               sector >>= 1;
>               blk_length++;
>       }
> 
> I think that should all turn into a compile time constant.
> 
> The dependency on bh_size being 2 is the 0xffff on the following line,
> I am not aware of any others.
> 
> Steve
> 
> 
> -- 
> 
> Steve Lord                                      voice: +1-651-683-3511
> Principal Engineer, Filesystem Software         email: lord@xxxxxxx
> 

-- 
---------------------------
dann frazier
Hewlett-Packard
Linux Systems Division
dannf@xxxxxx
(970) 898-0800


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