forked from Minki/linux
xfs: scrub: Remove incorrect check executed on block format directories
A directory with one directory block which in turns consists of two or more fs blocks is incorrectly flagged as corrupt by scrub since it assumes that "Block" format directories have a data fork single extent spanning the file offset range of [0, Dir block size - 1]. This commit fixes the bug by removing the incorrect check. Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
6e8bd39d72
commit
e773f88029
@ -694,15 +694,6 @@ xchk_directory_blocks(
|
||||
/* Iterate all the data extents in the directory... */
|
||||
found = xfs_iext_lookup_extent(sc->ip, ifp, lblk, &icur, &got);
|
||||
while (found && !(sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)) {
|
||||
/* Block directories only have a single block at offset 0. */
|
||||
if (is_block &&
|
||||
(got.br_startoff > 0 ||
|
||||
got.br_blockcount != args.geo->fsbcount)) {
|
||||
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
|
||||
got.br_startoff);
|
||||
break;
|
||||
}
|
||||
|
||||
/* No more data blocks... */
|
||||
if (got.br_startoff >= leaf_lblk)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user