aboutsummaryrefslogtreecommitdiff
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-05-20 16:32:49 -0700
committerMister Oyster <oysterized@gmail.com>2017-04-13 12:33:39 +0200
commit24adb6843dab0a50d689082a926d53c11f8804ca (patch)
treed1aaabdeb3f02f2f8a6c6c0c6800a14215fc6d1a /fs/f2fs/node.c
parentff2888d67964aeaa1a0408d4b6c5b71be4c72621 (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> Conflicts: fs/f2fs/namei.c
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c28
1 files changed, 0 insertions, 28 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 325fd97b5..2f64ae91f 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -681,8 +681,6 @@ static void truncate_node(struct dnode_of_data *dn)
remove_orphan_inode(sbi, dn->nid);
dec_valid_inode_count(sbi);
f2fs_inode_synced(dn->inode);
- } else {
- sync_inode_page(dn);
}
invalidate:
clear_node_page_dirty(dn->node_page);
@@ -1060,14 +1058,8 @@ struct page *new_node_page(struct dnode_of_data *dn,
if (f2fs_has_xattr_block(ofs))
f2fs_i_xnid_write(dn->inode, dn->nid);
- dn->node_page = page;
- if (ipage)
- update_inode(dn->inode, ipage);
- else
- sync_inode_page(dn);
if (ofs == 0)
inc_valid_inode_count(sbi);
-
return page;
fail:
@@ -1187,24 +1179,6 @@ struct page *get_node_page_ra(struct page *parent, int start)
return __get_node_page(sbi, nid, parent, start);
}
-void sync_inode_page(struct dnode_of_data *dn)
-{
- int ret = 0;
-
- if (IS_INODE(dn->node_page) || dn->inode_page == dn->node_page) {
- ret = update_inode(dn->inode, dn->node_page);
- } else if (dn->inode_page) {
- if (!dn->inode_page_locked)
- lock_page(dn->inode_page);
- ret = update_inode(dn->inode, dn->inode_page);
- if (!dn->inode_page_locked)
- unlock_page(dn->inode_page);
- } else {
- ret = update_inode_page(dn->inode);
- }
- dn->node_changed = ret ? true: false;
-}
-
static void flush_inline_data(struct f2fs_sb_info *sbi, nid_t ino)
{
struct inode *inode;
@@ -2019,8 +1993,6 @@ recover_xnid:
/* 3: update xattr blkaddr */
refresh_sit_entry(sbi, NEW_ADDR, blkaddr);
set_node_addr(sbi, &ni, blkaddr, false);
-
- update_inode_page(inode);
}
int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)