diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c index a728a0af9ce0..e4b25ef871b3 100644 --- a/fs/f2fs/namei.c +++ b/fs/f2fs/namei.c @@ -460,6 +460,13 @@ static int __recover_dot_dentries(struct inode *dir, nid_t pino) return 0; } + if (!S_ISDIR(dir->i_mode)) { + f2fs_err(sbi, "inconsistent inode status, skip recovering inline_dots inode (ino:%lu, i_mode:%u, pino:%u)", + dir->i_ino, dir->i_mode, pino); + set_sbi_flag(sbi, SBI_NEED_FSCK); + return -ENOTDIR; + } + err = f2fs_dquot_initialize(dir); if (err) return err;