diff options
Diffstat (limited to 'fs/f2fs/inode.c')
-rw-r--r-- | fs/f2fs/inode.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index 2adeff26be11..cb269c46ac25 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c | |||
@@ -83,7 +83,7 @@ static void __recover_inline_status(struct inode *inode, struct page *ipage) | |||
83 | 83 | ||
84 | while (start < end) { | 84 | while (start < end) { |
85 | if (*start++) { | 85 | if (*start++) { |
86 | f2fs_wait_on_page_writeback(ipage, NODE); | 86 | f2fs_wait_on_page_writeback(ipage, NODE, true); |
87 | 87 | ||
88 | set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); | 88 | set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); |
89 | set_raw_inline(F2FS_I(inode), F2FS_INODE(ipage)); | 89 | set_raw_inline(F2FS_I(inode), F2FS_INODE(ipage)); |
@@ -227,7 +227,7 @@ int update_inode(struct inode *inode, struct page *node_page) | |||
227 | { | 227 | { |
228 | struct f2fs_inode *ri; | 228 | struct f2fs_inode *ri; |
229 | 229 | ||
230 | f2fs_wait_on_page_writeback(node_page, NODE); | 230 | f2fs_wait_on_page_writeback(node_page, NODE, true); |
231 | 231 | ||
232 | ri = F2FS_INODE(node_page); | 232 | ri = F2FS_INODE(node_page); |
233 | 233 | ||
@@ -263,6 +263,10 @@ int update_inode(struct inode *inode, struct page *node_page) | |||
263 | set_cold_node(inode, node_page); | 263 | set_cold_node(inode, node_page); |
264 | clear_inode_flag(F2FS_I(inode), FI_DIRTY_INODE); | 264 | clear_inode_flag(F2FS_I(inode), FI_DIRTY_INODE); |
265 | 265 | ||
266 | /* deleted inode */ | ||
267 | if (inode->i_nlink == 0) | ||
268 | clear_inline_node(node_page); | ||
269 | |||
266 | return set_page_dirty(node_page); | 270 | return set_page_dirty(node_page); |
267 | } | 271 | } |
268 | 272 | ||
@@ -320,7 +324,7 @@ void f2fs_evict_inode(struct inode *inode) | |||
320 | 324 | ||
321 | /* some remained atomic pages should discarded */ | 325 | /* some remained atomic pages should discarded */ |
322 | if (f2fs_is_atomic_file(inode)) | 326 | if (f2fs_is_atomic_file(inode)) |
323 | commit_inmem_pages(inode, true); | 327 | drop_inmem_pages(inode); |
324 | 328 | ||
325 | trace_f2fs_evict_inode(inode); | 329 | trace_f2fs_evict_inode(inode); |
326 | truncate_inode_pages_final(&inode->i_data); | 330 | truncate_inode_pages_final(&inode->i_data); |
@@ -385,10 +389,7 @@ no_delete: | |||
385 | } | 389 | } |
386 | } | 390 | } |
387 | out_clear: | 391 | out_clear: |
388 | #ifdef CONFIG_F2FS_FS_ENCRYPTION | 392 | fscrypt_put_encryption_info(inode, NULL); |
389 | if (fi->i_crypt_info) | ||
390 | f2fs_free_encryption_info(inode, fi->i_crypt_info); | ||
391 | #endif | ||
392 | clear_inode(inode); | 393 | clear_inode(inode); |
393 | } | 394 | } |
394 | 395 | ||