diff options
author | Chao Yu <chao2.yu@samsung.com> | 2013-09-23 21:26:24 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-09-25 04:18:16 -0400 |
commit | 691c6fd2a2d6b6db08b17beec5e42ab0687058c7 (patch) | |
tree | d798ffcba0eefb306b44e6e275db4ff983d18915 /fs/f2fs/recovery.c | |
parent | cc7b1bb173676621b092b61d22d8d12b05efb5e8 (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.c | 5 |
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 | } |