Hi, On 06/26, Sheng Yong wrote: > After renaming a directory, fsck could detect unmatched pino. The scenario > can be reproduced as the following: > > $ mkdir /bar/subbar /foo > $ rename /bar/subbar /foo > > Then fsck will report: > [ASSERT] (__chk_dots_dentries:1182) --> Bad inode number[0x3] for '..', > parent parent ino is [0x4]
Does fsck report this? If LOST_PINO is found, it must skip parent ino? > > Rename sets LOST_PINO for old_inode. However, the flag cannot be cleared, > since dir is written back with CP. So, let's get rid of LOST_PINO for a > renamed dir and fix the pino directly at the end of rename. > > Signed-off-by: Sheng Yong <shengyo...@huawei.com> > --- > fs/f2fs/namei.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c > index c31b40e5f9cf..b75dc2f4ad57 100644 > --- a/fs/f2fs/namei.c > +++ b/fs/f2fs/namei.c > @@ -772,7 +772,10 @@ static int f2fs_rename(struct inode *old_dir, struct > dentry *old_dentry, > } > > down_write(&F2FS_I(old_inode)->i_sem); > - file_lost_pino(old_inode); > + if (!old_dir_entry || whiteout) > + file_lost_pino(old_inode); > + else > + F2FS_I(old_inode)->i_pino = new_dir->i_ino; > up_write(&F2FS_I(old_inode)->i_sem); > > old_inode->i_ctime = current_time(old_inode); > -- > 2.11.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 ------------------------------------------------------------------------------ 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