On 01/04, heyunlei wrote: > > > >-----Original Message----- > >From: Yuchao (T) > >Sent: Thursday, January 04, 2018 11:02 AM > >To: heyunlei; [email protected]; [email protected] > >Cc: Wangbintian; Jianing (Euler) > >Subject: Re: [f2fs-dev][PATCH] f2fs: update inode info to inode page for new > >file > > > >On 2018/1/3 18:03, Yunlei He wrote: > >> | > >> | 1. creat a new file A ,(with dirty inode > >> | && dirty inode page && xattr info) > >> | 2. backgroud wb write back file A inode > >> last checkpoint | page (without update from inode cache) > >> | 3. fsync file A, write back inode page of > >> | file A with inode cache info > >> | 4. sudden power off before new checkpoint > >> > >> In this case, recovery process will try to recover a zero inode > >> page. Inline xattr flag of file A will be miss and xattr info > >> will be taken as blkaddr index. > >> > >> Signed-off-by: Yunlei He <[email protected]> > >> --- > >> fs/f2fs/dir.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c > >> index 724304d..d04dcac 100644 > >> --- a/fs/f2fs/dir.c > >> +++ b/fs/f2fs/dir.c > >> @@ -427,6 +427,8 @@ struct page *init_inode_metadata(struct inode *inode, > >> struct inode *dir, > >> remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); > >> f2fs_i_links_write(inode, true); > >> } > >> + > >> + update_inode(inode, page); > > > >That would cause memory copy overhead, how about always keeping consistent > >in-memory inode meta info with the data in recovering inode block as below: > > > >recover_inline_xattr() > > > > if (ri->i_inline & F2FS_INLINE_XATTR) { > > set_inode_flag(inode, FI_INLINE_XATTR); > > } else { > > clear_inode_flag(inode, FI_INLINE_XATTR); > > goto update_inode; > > }
Ah I see. That doesn't represent parallel things. :P > > > >Thanks, > > Okay, My f2fs module is not support flexible inline xattr size, this change > is enough > for this problem. Let me merge this patch with this. Thanks, > > Thanks. > > > > >> return page; > >> > >> put_error: > >> ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
