On 01/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)
f2fs_sync_inode_meta() would flush dirty inode cache, no? > | 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); > return page; > > put_error: > -- > 1.9.1 ------------------------------------------------------------------------------ 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
