summaryrefslogtreecommitdiff
path: root/fs/xfs/scrub/refcount_repair.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-01-05 17:43:41 -0800
committerDarrick J. Wong <djwong@kernel.org>2021-03-25 17:08:21 -0700
commit8adc1a1d30dbfd3d76ebb75edcf8ca063100c1d8 (patch)
tree7ecac75d58e23a5a046ad27d576c1798ba080a38 /fs/xfs/scrub/refcount_repair.c
parentbeeec7b7e668fd176b4c3847ed73e5fc0fcc4c03 (diff)
xfs: report XFS_CORRUPT_ON errors to the health systemcorruption-health-reports_2021-03-25
Whenever we encounter XFS_CORRUPT_ON failures, we should report that to the health monitoring system for later reporting. I started with this and massaged everything until it built: @@ expression mp, test; @@ - if (XFS_CORRUPT_ON(mp, test)) return -EFSCORRUPTED; + if (XFS_CORRUPT_ON(mp, test)) { xfs_btree_mark_sick(cur); return -EFSCORRUPTED; } @@ expression mp, test; identifier label, error; @@ - if (XFS_CORRUPT_ON(mp, test)) { error = -EFSCORRUPTED; goto label; } + if (XFS_CORRUPT_ON(mp, test)) { xfs_btree_mark_sick(cur); error = -EFSCORRUPTED; goto label; } Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/scrub/refcount_repair.c')
-rw-r--r--fs/xfs/scrub/refcount_repair.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/scrub/refcount_repair.c b/fs/xfs/scrub/refcount_repair.c
index 96ef9cbd4e24..18a66d61e0e5 100644
--- a/fs/xfs/scrub/refcount_repair.c
+++ b/fs/xfs/scrub/refcount_repair.c
@@ -22,6 +22,7 @@
#include "xfs_refcount.h"
#include "xfs_refcount_btree.h"
#include "xfs_error.h"
+#include "xfs_health.h"
#include "scrub/xfs_scrub.h"
#include "scrub/scrub.h"
#include "scrub/common.h"
@@ -222,6 +223,7 @@ xrep_refc_next_rrm(
if (error)
goto out_error;
if (XFS_IS_CORRUPT(mp, !have_gt)) {
+ xfs_btree_mark_sick(cur);
error = -EFSCORRUPTED;
goto out_error;
}
@@ -347,6 +349,7 @@ xrep_refc_find_refcounts(
if (error)
goto out_bag;
if (XFS_IS_CORRUPT(sc->mp, !have_gt)) {
+ xfs_btree_mark_sick(sc->sa.rmap_cur);
error = -EFSCORRUPTED;
goto out_bag;
}
@@ -396,6 +399,7 @@ xrep_refc_find_refcounts(
if (error)
goto out_bag;
if (XFS_IS_CORRUPT(sc->mp, !have_gt)) {
+ xfs_btree_mark_sick(sc->sa.rmap_cur);
error = -EFSCORRUPTED;
goto out_bag;
}