From: Darrick J. Wong <djwong@xxxxxxxxxx> Ever since commit b42db0860e130 ("xfs: enhance dinode verifier"), we've required that inodes with zero di_forkoff must also have di_aformat == EXTENTS and di_naextents == 0. clear_dinode_attr actually does this, but then both callers inexplicably set di_format = LOCAL. That in turn causes a verifier failure the next time the xattrs of that file are read by the kernel. Get rid of the bogus field write. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> --- repair/dinode.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/repair/dinode.c b/repair/dinode.c index e534a01b500..c10dd1fa322 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -2078,7 +2078,6 @@ process_inode_attr_fork( if (!no_modify) { do_warn(_(", clearing attr fork\n")); *dirty += clear_dinode_attr(mp, dino, lino); - dino->di_aformat = XFS_DINODE_FMT_LOCAL; ASSERT(*dirty > 0); } else { do_warn(_(", would clear attr fork\n")); @@ -2135,7 +2134,6 @@ process_inode_attr_fork( /* clear attributes if not done already */ if (!no_modify) { *dirty += clear_dinode_attr(mp, dino, lino); - dino->di_aformat = XFS_DINODE_FMT_LOCAL; } else { do_warn(_("would clear attr fork\n")); }