summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/xfs_zone_alloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index 538236ea2466..d127f122d6cf 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -1033,6 +1033,13 @@ xfs_init_zone(
return -EFSCORRUPTED;
}
+ if (used > write_pointer) {
+ xfs_warn(mp,
+"zone %u has used counter (0x%x) larger than write pointer (0x%x).",
+ rtg_rgno(rtg), used, write_pointer);
+ return -EFSCORRUPTED;
+ }
+
if (write_pointer == 0 && used != 0) {
xfs_warn(mp, "empty zone %u has non-zero used counter (0x%x).",
rtg_rgno(rtg), used);