From: Darrick J. Wong <djwong@xxxxxxxxxx> When we're processing uncertain inodes, we need to perform the extended checks on the xattr structure, because the processing might decide that an uncertain inode is in fact a certain inode, and to restore it to the filesystem. If that's the case, xfs_repair fails to catch problems in the attr structure. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- repair/dino_chunks.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/repair/dino_chunks.c b/repair/dino_chunks.c index 0e09132b0b1..cf6a5e399d4 100644 --- a/repair/dino_chunks.c +++ b/repair/dino_chunks.c @@ -1289,10 +1289,12 @@ process_uncertain_aginodes(xfs_mount_t *mp, xfs_agnumber_t agno) * process the inode record we just added * to the good inode tree. The inode * processing may add more records to the - * uncertain inode lists. + * uncertain inode lists. always process the + * extended attribute structure because we might + * decide that some inodes are still in use */ if (process_inode_chunk(mp, agno, igeo->ialloc_inos, - nrec, 1, 0, 0, &bogus)) { + nrec, 1, 0, 1, &bogus)) { /* XXX - i/o error, we've got a problem */ abort(); }