]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: complain about ag header crc errors
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 10 Jul 2020 19:35:46 +0000 (15:35 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 10 Jul 2020 19:35:46 +0000 (15:35 -0400)
Repair doesn't complain about crc errors in the AG headers, and it
should.  Otherwise, this gives the admin the wrong impression about the
state of the filesystem after a nomodify check.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Allison Collins <allison.henderson@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
repair/scan.c

index 505cfc533242c39194f8be7024c9aae2c1d37a0b..42b299f75067ab4b85057d08cdf2b7b350423350 100644 (file)
@@ -2441,6 +2441,8 @@ scan_ag(
                objname = _("root superblock");
                goto out_free_sb;
        }
+       if (sbbuf->b_error == -EFSBADCRC)
+               do_warn(_("superblock has bad CRC for ag %d\n"), agno);
        libxfs_sb_from_disk(sb, sbbuf->b_addr);
 
        error = salvage_buffer(mp->m_dev,
@@ -2450,6 +2452,8 @@ scan_ag(
                objname = _("agf block");
                goto out_free_sbbuf;
        }
+       if (agfbuf->b_error == -EFSBADCRC)
+               do_warn(_("agf has bad CRC for ag %d\n"), agno);
        agf = agfbuf->b_addr;
 
        error = salvage_buffer(mp->m_dev,
@@ -2459,6 +2463,8 @@ scan_ag(
                objname = _("agi block");
                goto out_free_agfbuf;
        }
+       if (agibuf->b_error == -EFSBADCRC)
+               do_warn(_("agi has bad CRC for ag %d\n"), agno);
        agi = agibuf->b_addr;
 
        /* fix up bad ag headers */