The patch titled slab: clean up kmem_getpages has been removed from the -mm tree. Its filename is slab-cleanup-kmem_getpages.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: slab: clean up kmem_getpages From: Christoph Hellwig <hch@xxxxxx> The last ifdef addition hit the ugliness treshold on this functions, so: - rename the variable i to nr_pages so it's somewhat descriptive - remove the addr variable and do the page_address call at the very end - instead of ifdef'ing the whole alloc_pages_node call just make the __GFP_COMP addition to flags conditional - rewrite the __GFP_COMP comment to make sense Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- mm/slab.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff -puN mm/slab.c~slab-cleanup-kmem_getpages mm/slab.c --- a/mm/slab.c~slab-cleanup-kmem_getpages +++ a/mm/slab.c @@ -1489,31 +1489,29 @@ __initcall(cpucache_init); static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid) { struct page *page; - void *addr; + int nr_pages; int i; - flags |= cachep->gfpflags; #ifndef CONFIG_MMU - /* nommu uses slab's for process anonymous memory allocations, so - * requires __GFP_COMP to properly refcount higher order allocations" + /* + * Nommu uses slab's for process anonymous memory allocations, and thus + * requires __GFP_COMP to properly refcount higher order allocations */ - page = alloc_pages_node(nodeid, (flags | __GFP_COMP), cachep->gfporder); -#else - page = alloc_pages_node(nodeid, flags, cachep->gfporder); + flags |= __GFP_COMP; #endif + flags |= cachep->gfpflags; + + page = alloc_pages_node(nodeid, flags, cachep->gfporder); if (!page) return NULL; - addr = page_address(page); - i = (1 << cachep->gfporder); + nr_pages = (1 << cachep->gfporder); if (cachep->flags & SLAB_RECLAIM_ACCOUNT) - atomic_add(i, &slab_reclaim_pages); - add_page_state(nr_slab, i); - while (i--) { - __SetPageSlab(page); - page++; - } - return addr; + atomic_add(nr_pages, &slab_reclaim_pages); + add_page_state(nr_slab, nr_pages); + for (i = 0; i < nr_pages; i++) + __SetPageSlab(page + i); + return page_address(page); } /* _ Patches currently in -mm which might be from hch@xxxxxx are origin.patch areca-raid-linux-scsi-driver.patch xfs-pass-inode-to-xfs_ioc_space.patch mark-address_space_operations-const.patch fs-freevxfs-cleanup-of-spelling-errors.patch ftruncate-does-not-always-update-m-ctime.patch mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch ecryptfs-dont-muck-with-the-existing-nameidata-structures.patch task-watchers-task-watchers.patch task-watchers-task-watchers-tidy.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html