Re: [PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside (ver. 3) [message #1964 is a reply to message #1962] |
Fri, 10 March 2006 08:56 |
Andrew Morton
Messages: 127 Registered: December 2005
|
Senior Member |
|
|
Arjan van de Ven <arjan@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.
|
|
|