mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] mm: clean up pagecache allocation
- Consolidate page_cache_alloc - Fix splice: only the pagecache pages and filesystem data need to use mapping_gfp_mask. - Fix grab_cache_page_nowait: same as splice, also honour NUMA placement. Signed-off-by: Nick Piggin <npiggin@suse.de> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
858cbcdd4f
commit
2ae88149a2
3 changed files with 19 additions and 28 deletions
|
@ -52,19 +52,23 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
|
|||
void release_pages(struct page **pages, int nr, int cold);
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
extern struct page *page_cache_alloc(struct address_space *x);
|
||||
extern struct page *page_cache_alloc_cold(struct address_space *x);
|
||||
extern struct page *__page_cache_alloc(gfp_t gfp);
|
||||
#else
|
||||
static inline struct page *__page_cache_alloc(gfp_t gfp)
|
||||
{
|
||||
return alloc_pages(gfp, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline struct page *page_cache_alloc(struct address_space *x)
|
||||
{
|
||||
return alloc_pages(mapping_gfp_mask(x), 0);
|
||||
return __page_cache_alloc(mapping_gfp_mask(x));
|
||||
}
|
||||
|
||||
static inline struct page *page_cache_alloc_cold(struct address_space *x)
|
||||
{
|
||||
return alloc_pages(mapping_gfp_mask(x)|__GFP_COLD, 0);
|
||||
return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef int filler_t(void *, struct page *);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue