]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
f2fs: remove unneeded write checkpoint in recover_fsync_data
authorChao Yu <chao2.yu@samsung.com>
Tue, 24 Sep 2013 01:26:24 +0000 (09:26 +0800)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Wed, 25 Sep 2013 08:18:16 +0000 (17:18 +0900)
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>
fs/f2fs/recovery.c

index 51ef5eec33d7fec07503e6eb9c90b86256b1dc3a..d43e4cd1f815cf231bba48ef0fd6eeada951e369 100644 (file)
@@ -419,6 +419,7 @@ int recover_fsync_data(struct f2fs_sb_info *sbi)
 {
        struct list_head inode_list;
        int err;
+       int need_writecp = 0;
 
        fsync_entry_slab = f2fs_kmem_cache_create("f2fs_fsync_inode_entry",
                        sizeof(struct fsync_inode_entry), NULL);
@@ -436,6 +437,8 @@ int recover_fsync_data(struct f2fs_sb_info *sbi)
        if (list_empty(&inode_list))
                goto out;
 
+       need_writecp = 1;
+
        /* step #2: recover data */
        err = recover_data(sbi, &inode_list, CURSEG_WARM_NODE);
        BUG_ON(!list_empty(&inode_list));
@@ -443,7 +446,7 @@ out:
        destroy_fsync_dnodes(&inode_list);
        kmem_cache_destroy(fsync_entry_slab);
        sbi->por_doing = 0;
-       if (!err)
+       if (!err && need_writecp)
                write_checkpoint(sbi, false);
        return err;
 }