pgdat_resize_unlock(pgdat, &flags);
void show_mem(void){	int total = 0, reserved = 0;	int shared = 0, cached = 0;	int highmem = 0;	struct page *page;	pg_data_t *pgdat;	unsigned long i;	struct page_state ps;	printk(KERN_INFO "Mem-info:\n");	show_free_areas();	printk(KERN_INFO "Free swap:       %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));	for_each_pgdat(pgdat) {		for (i = 0; i < pgdat->node_spanned_pages; ++i) {			page = pgdat_page_nr(pgdat, i);			total++;			if (PageHighMem(page))				highmem++;			if (PageReserved(page))				reserved++;			else if (PageSwapCache(page))				cached++;			else if (page_count(page))				shared += page_count(page) - 1;		}	}	printk(KERN_INFO "%d pages of RAM\n", total);	printk(KERN_INFO "%d pages of HIGHMEM\n", highmem);	printk(KERN_INFO "%d reserved pages\n", reserved);	printk(KERN_INFO "%d pages shared\n", shared);	printk(KERN_INFO "%d pages swap cached\n", cached);	get_page_state(&ps);	printk(KERN_INFO "%lu pages dirty\n", ps.nr_dirty);	printk(KERN_INFO "%lu pages writeback\n", ps.nr_writeback);	printk(KERN_INFO "%lu pages mapped\n", ps.nr_mapped);	printk(KERN_INFO "%lu pages slab\n", ps.nr_slab);	printk(KERN_INFO "%lu pages pagetables\n", ps.nr_page_table_pages);}