aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/recovery.c
diff options
context:
space:
mode:
authorChao Yu <chao2.yu@samsung.com>2013-09-23 21:26:24 -0400
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-09-25 04:18:16 -0400
commit691c6fd2a2d6b6db08b17beec5e42ab0687058c7 (patch)
treed798ffcba0eefb306b44e6e275db4ff983d18915 /fs/f2fs/recovery.c
parentcc7b1bb173676621b092b61d22d8d12b05efb5e8 (diff)
f2fs: remove unneeded write checkpoint in recover_fsync_data
Previously, recover_fsync_data still to write checkpoint when there is nothing to recover with normal umount image. It may reduce mount performance and flash memory lifetime, so let's remove it. Signed-off-by: Tan Shu <shu.tan@samsung.com> Signed-off-by: Yu Chao <chao2.yu@samsung.com> Reviewed-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/recovery.c')
-rw-r--r--fs/f2fs/recovery.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index 51ef5eec33d7..d43e4cd1f815 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -419,6 +419,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi)
419{ 419{
420 struct list_head inode_list; 420 struct list_head inode_list;
421 int err; 421 int err;
422 int need_writecp = 0;
422 423
423 fsync_entry_slab = f2fs_kmem_cache_create("f2fs_fsync_inode_entry", 424 fsync_entry_slab = f2fs_kmem_cache_create("f2fs_fsync_inode_entry",
424 sizeof(struct fsync_inode_entry), NULL); 425 sizeof(struct fsync_inode_entry), NULL);
@@ -436,6 +437,8 @@ int recover_fsync_data(struct f2fs_sb_info *sbi)
436 if (list_empty(&inode_list)) 437 if (list_empty(&inode_list))
437 goto out; 438 goto out;
438 439
440 need_writecp = 1;
441
439 /* step #2: recover data */ 442 /* step #2: recover data */
440 err = recover_data(sbi, &inode_list, CURSEG_WARM_NODE); 443 err = recover_data(sbi, &inode_list, CURSEG_WARM_NODE);
441 BUG_ON(!list_empty(&inode_list)); 444 BUG_ON(!list_empty(&inode_list));
@@ -443,7 +446,7 @@ out:
443 destroy_fsync_dnodes(&inode_list); 446 destroy_fsync_dnodes(&inode_list);
444 kmem_cache_destroy(fsync_entry_slab); 447 kmem_cache_destroy(fsync_entry_slab);
445 sbi->por_doing = 0; 448 sbi->por_doing = 0;
446 if (!err) 449 if (!err && need_writecp)
447 write_checkpoint(sbi, false); 450 write_checkpoint(sbi, false);
448 return err; 451 return err;
449} 452}