xfs: mark a data structure sick if there are cross-referencing errors
authorDarrick J. Wong <djwong@kernel.org>
Mon, 22 Mar 2021 16:51:52 +0000 (09:51 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 25 Mar 2021 23:47:49 +0000 (16:47 -0700)
If scrub observes cross-referencing errors while scanning a data
structure, mark the data structure sick.  There's /something/
inconsistent, even if we can't really tell what it is.

Fixes: 4860a05d2475 ("xfs: scrub/repair should update filesystem metadata health")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/scrub/health.c

index 83d27cd..3de59b5 100644 (file)
@@ -133,7 +133,8 @@ xchk_update_health(
        if (!sc->sick_mask)
                return;
 
-       bad = (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT);
+       bad = (sc->sm->sm_flags & (XFS_SCRUB_OFLAG_CORRUPT |
+                                  XFS_SCRUB_OFLAG_XCORRUPT));
        switch (type_to_health_flag[sc->sm->sm_type].group) {
        case XHG_AG:
                pag = xfs_perag_get(sc->mp, sc->sm->sm_agno);