xfs: fix data fork format filtering during inode repair
Coverity noticed that xrep_dinode_bad_metabt_fork never runs because XFS_DINODE_FMT_META_BTREE is always filtered out in the mode selection switch of xrep_dinode_check_dfork. Metadata btrees are allowed only in the data forks of regular files, so add this case explicitly. I guess this got fubard during a refactoring prior to 6.13 and I didn't notice until now. :/ Coverity-id: 1617714 Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
66314e9a57
commit
6e33017c32
1 changed files with 10 additions and 2 deletions
|
@ -1055,9 +1055,17 @@ xrep_dinode_check_dfork(
|
|||
return true;
|
||||
break;
|
||||
case S_IFREG:
|
||||
if (fmt == XFS_DINODE_FMT_LOCAL)
|
||||
switch (fmt) {
|
||||
case XFS_DINODE_FMT_LOCAL:
|
||||
return true;
|
||||
fallthrough;
|
||||
case XFS_DINODE_FMT_EXTENTS:
|
||||
case XFS_DINODE_FMT_BTREE:
|
||||
case XFS_DINODE_FMT_META_BTREE:
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case S_IFLNK:
|
||||
case S_IFDIR:
|
||||
switch (fmt) {
|
||||
|
|
Loading…
Add table
Reference in a new issue