Hi Yunlei, On 2017/8/26 12:15, Yunlei He wrote: > The loop reason is DIRTY IMETA always equal to 1: > > Thread A: > -write_checkpoint > -block_operations > -f2fs_sync_inode_meta > -igrab <--- here igrab return NULL > > Thread B: > -f2fs_evict_inode > -remove_inode_page > -truncate_xattr_node > -__get_node_page > -read_node_page <---- here return -ENOENT > > This patch walk around this cause.
It needs to figure out root cause that why xattr node entry is invalid. Thanks, > > Signed-off-by: Yunlei He <heyun...@huawei.com> > --- > fs/f2fs/node.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c > index 2654c91..ec7a0e0 100644 > --- a/fs/f2fs/node.c > +++ b/fs/f2fs/node.c > @@ -973,8 +973,9 @@ int truncate_xattr_node(struct inode *inode, struct page > *page) > return 0; > > npage = get_node_page(sbi, nid); > - if (IS_ERR(npage)) > + if (IS_ERR(npage) && PTR_ERR(npage) != -ENOENT) { > return PTR_ERR(npage); > + } > > f2fs_i_xnid_write(inode, 0); > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel