if (error) { /* We fail cleanly */ free_eaten_memory(); for_each_pbe (p, pagedir_nosave) if (p->address) { free_page(p->address); p->address = 0UL; } free_pagedir(pagedir_nosave); } 
static int read_suspend_image(void){	int error = 0;	struct pbe *p;	if (!(p = alloc_pagedir(nr_copy_pages)))		return -ENOMEM;	if ((error = read_pagedir(p)))		return error;	create_pbe_list(p, nr_copy_pages);	if (!(pagedir_nosave = swsusp_pagedir_relocate(p)))		return -ENOMEM;	/* Allocate memory for the image and read the data from swap */	error = check_pagedir(pagedir_nosave);	if (!error)		error = data_read(pagedir_nosave);	if (error) { /* We fail cleanly */		free_eaten_memory();		for_each_pbe (p, pagedir_nosave)			if (p->address) {				free_page(p->address);				p->address = 0UL;			}		free_pagedir(pagedir_nosave);	}	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2c1b4a5ca48831595979a850f40ced8e7da026f8/swsusp.c/buggy/kernel/power/swsusp.c