aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs/inode.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-06-09 20:17:01 -0400
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-06-13 20:04:43 -0400
commitb3783873cc2214542d3da9a1aa800b20919d5889 (patch)
tree7b2e4f8eafd726c9c97bfde832a0178c840815a7 /fs/f2fs/inode.c
parentd7cc950b4c910e4440485be784493880a0d09086 (diff)
f2fs: avoid freqeunt write_inode calls
If update_inode is called, we don't need to do write_inode. So, let's use a *dirty* flag for each inode. Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/inode.c')
-rw-r--r--fs/f2fs/inode.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index b44a4c1194ea..2b2d45d19e3e 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -192,6 +192,7 @@ void update_inode(struct inode *inode, struct page *node_page)
192 192
193 set_cold_node(inode, node_page); 193 set_cold_node(inode, node_page);
194 set_page_dirty(node_page); 194 set_page_dirty(node_page);
195 clear_inode_flag(F2FS_I(inode), FI_DIRTY_INODE);
195} 196}
196 197
197int update_inode_page(struct inode *inode) 198int update_inode_page(struct inode *inode)
@@ -217,6 +218,9 @@ int f2fs_write_inode(struct inode *inode, struct writeback_control *wbc)
217 inode->i_ino == F2FS_META_INO(sbi)) 218 inode->i_ino == F2FS_META_INO(sbi))
218 return 0; 219 return 0;
219 220
221 if (!is_inode_flag_set(F2FS_I(inode), FI_DIRTY_INODE))
222 return 0;
223
220 if (wbc) 224 if (wbc)
221 f2fs_balance_fs(sbi); 225 f2fs_balance_fs(sbi);
222 226