[PATCH 13/50] xfs_repair: adjust rtbitmap/rtsummary word updates to handle big endian values

Darrick J. Wong
2024-12-07T00:08:18Z

From: Darrick J. Wong <djwong@kernel.org>

With rtgroups, the rt bitmap and summary file words are defined to be
be32 values. Adjust repair to handle the endianness correctly.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
repair/rt.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/repair/rt.c b/repair/rt.c
index 711891a724b076..65d6a713f379d2 100644
--- a/repair/rt.c
+++ b/repair/rt.c
@@ -24,7 +24,10 @@ set_rtword(
union xfs_rtword_raw *word,
xfs_rtword_t value)
{
- word->old = value;
+ if (xfs_has_rtgroups(mp))
+ word->rtg = cpu_to_be32(value);
+ else
+ word->old = value;
}

static inline void
@@ -35,7 +38,10 @@ inc_sumcount(
{
union xfs_suminfo_raw *p = info + index;

- p->old++;
+ if (xfs_has_rtgroups(mp))
+ be32_add_cpu(&p->rtg, 1);
+ else
+ p->old++;
}

/*