Re: [PATCH] nilfs2: fix oops due to a bad aops initialization

From: Ryusuke Konishi
Date: Wed Mar 30 2011 - 07:22:23 EST


On Wed, 30 Mar 2011 13:07:46 +0200, Jens Axboe <jaxboe@xxxxxxxxxxxx> wrote:
> On 2011-03-30 06:25, Ryusuke Konishi wrote:
> > diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
> > index 4d2a1ee..9d2dc6b 100644
> > --- a/fs/nilfs2/page.c
> > +++ b/fs/nilfs2/page.c
> > @@ -495,12 +495,14 @@ unsigned nilfs_page_count_clean_buffers(struct page *page,
> > void nilfs_mapping_init(struct address_space *mapping,
> > struct backing_dev_info *bdi)
> > {
> > + static const struct address_space_operations empty_aops;
> > +
> > mapping->host = NULL;
> > mapping->flags = 0;
> > mapping_set_gfp_mask(mapping, GFP_NOFS);
> > mapping->assoc_mapping = NULL;
> > mapping->backing_dev_info = bdi;
> > - mapping->a_ops = NULL;
> > + mapping->a_ops = &empty_aops;
> > }
>
> Hmm wait, inode init should set the mapping aops to an empty type
> already. Does the OOPS go away if you just remove the mapping->a_ops =
> NULL assignment?
>
> --
> Jens Axboe

Nilfs has two mappings in each inode, one for data pages and another
for btree nodes. The aops initialization is neede for the latter one.

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