diff options
author | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-06-09 20:17:01 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-06-13 20:04:43 -0400 |
commit | b3783873cc2214542d3da9a1aa800b20919d5889 (patch) | |
tree | 7b2e4f8eafd726c9c97bfde832a0178c840815a7 /fs/f2fs/inode.c | |
parent | d7cc950b4c910e4440485be784493880a0d09086 (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.c | 4 |
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 | ||
197 | int update_inode_page(struct inode *inode) | 198 | int 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 | ||