mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-22 09:22:37 +00:00
f2fs: invalidate xattr node page when evict inode
When inode is evicted, all the page cache belong to this inode should be released including the xattr node page. But previously we didn't do this, this patch fixed this issue. v2: o reposition invalidate_mapping_pages() to the right place suggested by Jaegeuk Kim. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
70cfed88ef
commit
002a41cabb
@ -267,6 +267,7 @@ int f2fs_write_inode(struct inode *inode, struct writeback_control *wbc)
|
|||||||
void f2fs_evict_inode(struct inode *inode)
|
void f2fs_evict_inode(struct inode *inode)
|
||||||
{
|
{
|
||||||
struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
|
struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
|
||||||
|
nid_t xnid = F2FS_I(inode)->i_xattr_nid;
|
||||||
|
|
||||||
trace_f2fs_evict_inode(inode);
|
trace_f2fs_evict_inode(inode);
|
||||||
truncate_inode_pages_final(&inode->i_data);
|
truncate_inode_pages_final(&inode->i_data);
|
||||||
@ -296,6 +297,8 @@ void f2fs_evict_inode(struct inode *inode)
|
|||||||
sb_end_intwrite(inode->i_sb);
|
sb_end_intwrite(inode->i_sb);
|
||||||
no_delete:
|
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)
|
||||||
|
invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
|
||||||
if (is_inode_flag_set(F2FS_I(inode), FI_APPEND_WRITE))
|
if (is_inode_flag_set(F2FS_I(inode), FI_APPEND_WRITE))
|
||||||
add_dirty_inode(sbi, inode->i_ino, APPEND_INO);
|
add_dirty_inode(sbi, inode->i_ino, APPEND_INO);
|
||||||
if (is_inode_flag_set(F2FS_I(inode), FI_UPDATE_WRITE))
|
if (is_inode_flag_set(F2FS_I(inode), FI_UPDATE_WRITE))
|
||||||
|
Loading…
Reference in New Issue
Block a user