|
|
|
@ -425,7 +425,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi) |
|
|
|
|
{ |
|
|
|
|
struct list_head inode_list; |
|
|
|
|
int err; |
|
|
|
|
int need_writecp = 0; |
|
|
|
|
bool need_writecp = false; |
|
|
|
|
|
|
|
|
|
fsync_entry_slab = f2fs_kmem_cache_create("f2fs_fsync_inode_entry", |
|
|
|
|
sizeof(struct fsync_inode_entry), NULL); |
|
|
|
@ -435,7 +435,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi) |
|
|
|
|
INIT_LIST_HEAD(&inode_list); |
|
|
|
|
|
|
|
|
|
/* step #1: find fsynced inode numbers */ |
|
|
|
|
sbi->por_doing = 1; |
|
|
|
|
sbi->por_doing = true; |
|
|
|
|
err = find_fsync_dnodes(sbi, &inode_list); |
|
|
|
|
if (err) |
|
|
|
|
goto out; |
|
|
|
@ -443,7 +443,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi) |
|
|
|
|
if (list_empty(&inode_list)) |
|
|
|
|
goto out; |
|
|
|
|
|
|
|
|
|
need_writecp = 1; |
|
|
|
|
need_writecp = true; |
|
|
|
|
|
|
|
|
|
/* step #2: recover data */ |
|
|
|
|
err = recover_data(sbi, &inode_list, CURSEG_WARM_NODE); |
|
|
|
@ -451,7 +451,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi) |
|
|
|
|
out: |
|
|
|
|
destroy_fsync_dnodes(&inode_list); |
|
|
|
|
kmem_cache_destroy(fsync_entry_slab); |
|
|
|
|
sbi->por_doing = 0; |
|
|
|
|
sbi->por_doing = false; |
|
|
|
|
if (!err && need_writecp) |
|
|
|
|
write_checkpoint(sbi, false); |
|
|
|
|
return err; |
|
|
|
|