[Top] [All Lists]

[PATCH] xfsdump:fill in bs_forkoff

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: [PATCH] xfsdump:fill in bs_forkoff
From: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Thu, 18 Oct 2012 23:02:05 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20121010 Thunderbird/16.0.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

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>

Tested w/ ./check -g dump on a 3.6.0 kernel, no failures.

Setting to 0 would work too, if that would be better?
It just looked odd.

Index: xfsdump-3.0.4/common/arch_xlate.c
--- xfsdump-3.0.4.orig/common/arch_xlate.c
+++ xfsdump-3.0.4/common/arch_xlate.c
@@ -377,6 +377,7 @@ xlate_bstat(bstat_t *bs1, bstat_t *bs2, 
        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);
Index: xfsdump-3.0.4/dump/content.c
--- xfsdump-3.0.4.orig/dump/content.c
+++ xfsdump-3.0.4/dump/content.c
@@ -5072,6 +5072,7 @@ copy_xfs_bstat(bstat_t *dst, xfs_bstat_t
        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;

<Prev in Thread] Current Thread [Next in Thread>