[Devel] Re: [PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside (ver. 3)

Andrew Morton akpm at osdl.org
Fri Mar 10 00:56:34 PST 2006


Arjan van de Ven <arjan at infradead.org> wrote:
>
> On Fri, 2006-03-10 at 11:46 +0300, Kirill Korotaev wrote:
> > Andrew,
> > 
> > Fixed both comments from Al Viro (thanks, Al):
> > - should have a separate helper
> > - should pass 0 instead of GFP_KERNEL in page_symlink()
> 
> >  
> > +	page = find_or_create_page(mapping, 0,
> > +			mapping_gfp_mask(mapping) | gfp_mask);
> 
> 
> 
> this does not work; GFP_NOFS has a bit *LESS* than GFP_KERNEL, not a bit
> more. As such a | operation isn't going to be useful....
> 
> (So I think that while Al's intention was good, the implication of it
> isn't ;)

Yup.  page_symlink() needs to pass in mapping_gfp_mask(inode->i_mapping)
and ext3 needs to pass in, umm,

	mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS

or

	GFP_NOFS|__GFP_HIGHMEM.

preferably the former I guess.




More information about the Devel mailing list