aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2012-10-18 23:02:05 -0500
committerBen Myers <bpm@sgi.com>2012-11-02 12:21:17 -0500
commitb7af332bfdd208a563186f847dfce2eeb1e75669 (patch)
tree9ad03bc3ffb5d123371efd87571781bbd93a6268
parente431c649e5d0824b1776fbe3acfaa923f5c5ac43 (diff)
downloadxfsdump-dev-b7af332bfdd208a563186f847dfce2eeb1e75669.tar.gz
xfsdump: fill in bs_forkoffv3.1.1-rc2v3.1.1
Upstream, the structure containing bs_forkoff is actually zeroed prior to these functions, but when pulling the patch back to an older xfsdump, we got checksum errors due to an uninitialized bs_forkoff not matching in dump vs. restore. So even though forkoff won't be explicitly restored from a dump, do explicitly set it in these routines to keep checksums happy. This fixes 'bad header checksum' errors in xfsrestore, which were introduced by commit 1e309da7. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ben Myers <bpm@sgi.com>
-rw-r--r--common/arch_xlate.c1
-rw-r--r--dump/content.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/common/arch_xlate.c b/common/arch_xlate.c
index e42abd51..bafc1a6c 100644
--- a/common/arch_xlate.c
+++ b/common/arch_xlate.c
@@ -377,6 +377,7 @@ xlate_bstat(bstat_t *bs1, bstat_t *bs2, int dir)
IXLATE(bs1, bs2, bs_extents);
IXLATE(bs1, bs2, bs_gen);
IXLATE(bs1, bs2, bs_projid_lo);
+ IXLATE(bs1, bs2, bs_forkoff);
IXLATE(bs1, bs2, bs_projid_hi);
IXLATE(bs1, bs2, bs_dmevmask);
IXLATE(bs1, bs2, bs_dmstate);
diff --git a/dump/content.c b/dump/content.c
index ec5e9540..9a36fe10 100644
--- a/dump/content.c
+++ b/dump/content.c
@@ -4928,6 +4928,7 @@ copy_xfs_bstat(bstat_t *dst, xfs_bstat_t *src)
dst->bs_extents = src->bs_extents;
dst->bs_gen = src->bs_gen;
dst->bs_projid_lo = src->bs_projid_lo;
+ dst->bs_forkoff = src->bs_forkoff;
dst->bs_projid_hi = src->bs_projid_hi;
dst->bs_dmevmask = src->bs_dmevmask;
dst->bs_dmstate = src->bs_dmstate;