mirror of
https://gitee.com/openharmony/third_party_f2fs-tools
synced 2024-11-26 19:51:32 +00:00
fsck: clear unexpected casefold flags
Inodes aren't allowed to have the casefold flag set when they aren't directories, or if the filesystem superblock doesn't have the casefold feature enabled. Clear any such unexpected casefold flags. Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
1a7415a9e2
commit
8fd836f25f
11
fsck/fsck.c
11
fsck/fsck.c
@ -790,6 +790,17 @@ void fsck_chk_inode_blk(struct f2fs_sb_info *sbi, u32 nid,
|
||||
}
|
||||
ofs = get_extra_isize(node_blk);
|
||||
|
||||
if ((node_blk->i.i_flags & cpu_to_le32(F2FS_CASEFOLD_FL)) &&
|
||||
(ftype != F2FS_FT_DIR ||
|
||||
!(c.feature & cpu_to_le32(F2FS_FEATURE_CASEFOLD)))) {
|
||||
ASSERT_MSG("[0x%x] unexpected casefold flag", nid);
|
||||
if (c.fix_on) {
|
||||
FIX_MSG("ino[0x%x] clear casefold flag", nid);
|
||||
node_blk->i.i_flags &= ~cpu_to_le32(F2FS_CASEFOLD_FL);
|
||||
need_fix = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ((node_blk->i.i_inline & F2FS_INLINE_DATA)) {
|
||||
unsigned int inline_size = MAX_INLINE_DATA(node_blk);
|
||||
if (cur_qtype != -1)
|
||||
|
Loading…
Reference in New Issue
Block a user