|
@@ -377,6 +377,9 @@ void f2fs_evict_inode(struct inode *inode)
|
|
goto no_delete;
|
|
goto no_delete;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+ remove_ino_entry(sbi, inode->i_ino, APPEND_INO);
|
|
|
|
+ remove_ino_entry(sbi, inode->i_ino, UPDATE_INO);
|
|
|
|
+
|
|
sb_start_intwrite(inode->i_sb);
|
|
sb_start_intwrite(inode->i_sb);
|
|
set_inode_flag(inode, FI_NO_ALLOC);
|
|
set_inode_flag(inode, FI_NO_ALLOC);
|
|
i_size_write(inode, 0);
|
|
i_size_write(inode, 0);
|
|
@@ -409,10 +412,12 @@ no_delete:
|
|
invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino, inode->i_ino);
|
|
invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino, inode->i_ino);
|
|
if (xnid)
|
|
if (xnid)
|
|
invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
|
|
invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
|
|
- if (is_inode_flag_set(inode, FI_APPEND_WRITE))
|
|
|
|
- add_ino_entry(sbi, inode->i_ino, APPEND_INO);
|
|
|
|
- if (is_inode_flag_set(inode, FI_UPDATE_WRITE))
|
|
|
|
- add_ino_entry(sbi, inode->i_ino, UPDATE_INO);
|
|
|
|
|
|
+ if (inode->i_nlink) {
|
|
|
|
+ if (is_inode_flag_set(inode, FI_APPEND_WRITE))
|
|
|
|
+ add_ino_entry(sbi, inode->i_ino, APPEND_INO);
|
|
|
|
+ if (is_inode_flag_set(inode, FI_UPDATE_WRITE))
|
|
|
|
+ add_ino_entry(sbi, inode->i_ino, UPDATE_INO);
|
|
|
|
+ }
|
|
if (is_inode_flag_set(inode, FI_FREE_NID)) {
|
|
if (is_inode_flag_set(inode, FI_FREE_NID)) {
|
|
alloc_nid_failed(sbi, inode->i_ino);
|
|
alloc_nid_failed(sbi, inode->i_ino);
|
|
clear_inode_flag(inode, FI_FREE_NID);
|
|
clear_inode_flag(inode, FI_FREE_NID);
|