Re: [discuss] Re: 2.6.16-rc5-mm3: spinlock bad magic on CPU#0 on AMD64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 13 March 2006 12:45, Andrew Morton wrote:
> "Rafael J. Wysocki" <[email protected]> wrote:
> >
> > > This should fix:
> >  > 
> >  > --- devel/fs/ext3/inode.c~ext3-get-blocks-maping-multiple-blocks-at-a-once-journal-reentry-fix	2006-03-12 14:25:04.000000000 -0800
> >  > +++ devel-akpm/fs/ext3/inode.c	2006-03-12 14:25:04.000000000 -0800
> >  > @@ -830,7 +830,7 @@ ext3_direct_io_get_blocks(struct inode *
> >  >  	handle_t *handle = journal_current_handle();
> >  >  	int ret = 0;
> >  >  
> >  > -	if (!handle)
> >  > +	if (!create)
> >  >  		goto get_block;		/* A read */
> >  >  
> >  >  	if (max_blocks == 1)
> > 
> >  Er, it doesn't apply to either 2.6.16-rc5-mm3 or 2.6.16-rc6-mm1.
> 
> Nope, it applies OK to rc6-mm1.

Well, this means my rc6-mm1 is different to what you have. :-)

Anyway in "my" version there's a function ext3_get_block() which reads like this:

static int ext3_get_block(struct inode *inode, sector_t iblock,
                        struct buffer_head *bh_result, int create)
{
        handle_t *handle = journal_current_handle();
        int ret = 0;
        unsigned max_blocks = bh_result->b_size >> inode->i_blkbits;

        if (!handle)
                goto get_block;         /* A read */

        if (max_blocks == 1)
                goto get_block;         /* A single block get */

etc.

I guess I should replace the "if (!handle)" with "if (!create)"?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux