aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/namei.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-05-20 19:32:49 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2016-06-02 21:05:12 -0400
commitee6d182f2a19d5d44607b5ae4bec523726d76a99 (patch)
tree514092851eb0e974c6ac8add90fed10056b84998 /fs/f2fs/namei.c
parent0f18b462b2e5aff64b8638e8a47284b907351ef3 (diff)
f2fs: remove syncing inode page in all the cases
This patch reduces to call them across the whole tree. - sync_inode_page() - update_inode_page() - update_inode() - f2fs_write_inode() Instead, checkpoint will flush all the dirty inode metadata before syncing node pages. Note that, this is doable, since we call mark_inode_dirty_sync() for all inode's field change which needs to update on-disk inode as well. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/namei.c')
-rw-r--r--fs/f2fs/namei.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index f2b2c4068648..496f4e3018b2 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -706,9 +706,6 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
706 add_orphan_inode(sbi, new_inode->i_ino); 706 add_orphan_inode(sbi, new_inode->i_ino);
707 else 707 else
708 release_orphan_inode(sbi); 708 release_orphan_inode(sbi);
709
710 update_inode_page(old_inode);
711 update_inode_page(new_inode);
712 } else { 709 } else {
713 f2fs_balance_fs(sbi, true); 710 f2fs_balance_fs(sbi, true);
714 711
@@ -720,10 +717,8 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
720 goto out_whiteout; 717 goto out_whiteout;
721 } 718 }
722 719
723 if (old_dir_entry) { 720 if (old_dir_entry)
724 f2fs_i_links_write(new_dir, true); 721 f2fs_i_links_write(new_dir, true);
725 update_inode_page(new_dir);
726 }
727 722
728 /* 723 /*
729 * old entry and new entry can locate in the same inline 724 * old entry and new entry can locate in the same inline
@@ -771,13 +766,11 @@ static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry,
771 if (old_dir != new_dir && !whiteout) { 766 if (old_dir != new_dir && !whiteout) {
772 f2fs_set_link(old_inode, old_dir_entry, 767 f2fs_set_link(old_inode, old_dir_entry,
773 old_dir_page, new_dir); 768 old_dir_page, new_dir);
774 update_inode_page(old_inode);
775 } else { 769 } else {
776 f2fs_dentry_kunmap(old_inode, old_dir_page); 770 f2fs_dentry_kunmap(old_inode, old_dir_page);
777 f2fs_put_page(old_dir_page, 0); 771 f2fs_put_page(old_dir_page, 0);
778 } 772 }
779 f2fs_i_links_write(old_dir, false); 773 f2fs_i_links_write(old_dir, false);
780 update_inode_page(old_dir);
781 } 774 }
782 775
783 f2fs_unlock_op(sbi); 776 f2fs_unlock_op(sbi);
@@ -899,8 +892,6 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
899 file_lost_pino(old_inode); 892 file_lost_pino(old_inode);
900 up_write(&F2FS_I(old_inode)->i_sem); 893 up_write(&F2FS_I(old_inode)->i_sem);
901 894
902 update_inode_page(old_inode);
903
904 old_dir->i_ctime = CURRENT_TIME; 895 old_dir->i_ctime = CURRENT_TIME;
905 if (old_nlink) { 896 if (old_nlink) {
906 down_write(&F2FS_I(old_dir)->i_sem); 897 down_write(&F2FS_I(old_dir)->i_sem);
@@ -908,7 +899,6 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
908 up_write(&F2FS_I(old_dir)->i_sem); 899 up_write(&F2FS_I(old_dir)->i_sem);
909 } 900 }
910 mark_inode_dirty_sync(old_dir); 901 mark_inode_dirty_sync(old_dir);
911 update_inode_page(old_dir);
912 902
913 /* update directory entry info of new dir inode */ 903 /* update directory entry info of new dir inode */
914 f2fs_set_link(new_dir, new_entry, new_page, old_inode); 904 f2fs_set_link(new_dir, new_entry, new_page, old_inode);
@@ -917,8 +907,6 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
917 file_lost_pino(new_inode); 907 file_lost_pino(new_inode);
918 up_write(&F2FS_I(new_inode)->i_sem); 908 up_write(&F2FS_I(new_inode)->i_sem);
919 909
920 update_inode_page(new_inode);
921
922 new_dir->i_ctime = CURRENT_TIME; 910 new_dir->i_ctime = CURRENT_TIME;
923 if (new_nlink) { 911 if (new_nlink) {
924 down_write(&F2FS_I(new_dir)->i_sem); 912 down_write(&F2FS_I(new_dir)->i_sem);
@@ -926,7 +914,6 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
926 up_write(&F2FS_I(new_dir)->i_sem); 914 up_write(&F2FS_I(new_dir)->i_sem);
927 } 915 }
928 mark_inode_dirty_sync(new_dir); 916 mark_inode_dirty_sync(new_dir);
929 update_inode_page(new_dir);
930 917
931 f2fs_unlock_op(sbi); 918 f2fs_unlock_op(sbi);
932 919