recovery.c (9e1e6df412a28cdbbd2909de5c6189eda4a3383d) | recovery.c (aaec2b1d18792a5f27b69ff37f34f43f89f5aa3b) |
---|---|
1/* 2 * fs/f2fs/recovery.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 613 unchanged lines hidden (view full) --- 622 623 if (err) { 624 truncate_inode_pages_final(NODE_MAPPING(sbi)); 625 truncate_inode_pages_final(META_MAPPING(sbi)); 626 } 627 628 clear_sbi_flag(sbi, SBI_POR_DOING); 629 if (err) | 1/* 2 * fs/f2fs/recovery.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 613 unchanged lines hidden (view full) --- 622 623 if (err) { 624 truncate_inode_pages_final(NODE_MAPPING(sbi)); 625 truncate_inode_pages_final(META_MAPPING(sbi)); 626 } 627 628 clear_sbi_flag(sbi, SBI_POR_DOING); 629 if (err) |
630 set_ckpt_flags(sbi->ckpt, CP_ERROR_FLAG); | 630 set_ckpt_flags(sbi, CP_ERROR_FLAG); |
631 mutex_unlock(&sbi->cp_mutex); 632 633 /* let's drop all the directory inodes for clean checkpoint */ 634 destroy_fsync_dnodes(&dir_list); 635 636 if (!err && need_writecp) { 637 struct cp_control cpc = { 638 .reason = CP_RECOVERY, 639 }; 640 err = write_checkpoint(sbi, &cpc); 641 } 642 643 kmem_cache_destroy(fsync_entry_slab); 644 return ret ? ret: err; 645} | 631 mutex_unlock(&sbi->cp_mutex); 632 633 /* let's drop all the directory inodes for clean checkpoint */ 634 destroy_fsync_dnodes(&dir_list); 635 636 if (!err && need_writecp) { 637 struct cp_control cpc = { 638 .reason = CP_RECOVERY, 639 }; 640 err = write_checkpoint(sbi, &cpc); 641 } 642 643 kmem_cache_destroy(fsync_entry_slab); 644 return ret ? ret: err; 645} |