static int write_suspend_image(void) { int error; swp_entry_t prev = { 0 }; init_header(); if ((error = write_data())) goto FreeData; if ((error = write_pagedir())) goto FreePagedir; if ((error = write_header(&prev))) goto FreePagedir; error = mark_swapfiles(prev); Done: return error; FreePagedir: free_pagedir_entries(); FreeData: free_data(); goto Done; }
static int write_suspend_image(void) { int error; init_header(); if ((error = data_write())) goto FreeData; if ((error = write_pagedir())) goto FreePagedir; if ((error = close_swap())) goto FreePagedir; Done: return error; FreePagedir: free_pagedir_entries(); FreeData: data_free(); goto Done; }