xfs
[Top] [All Lists]

Re: Again: xfsrestore assertion failure

To: ivanr@xxxxxxx
Subject: Re: Again: xfsrestore assertion failure
From: Hasch@xxxxxxxxxxx (Juergen Hasch)
Date: Sat, 1 Dec 2001 20:37:27 +0100
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <169t5H-0FoJM0C@fwd03.sul.t-online.com>
References: <Pine.SGI.4.40.0111201041340.221674-100000@omen.melbourne.sgi.com> <169t5H-0FoJM0C@fwd03.sul.t-online.com>
Sender: owner-linux-xfs@xxxxxxxxxxx
Am Friday 30 November 2001 20:12 schrieb Juergen Hasch:

> In line 1508 of drive_scsitape.c I find the following values:
> first_mark_offset = 206e460000000000
> file_offset = 400000
> tape_recsz = 809efa800100000

Ivan, things go wrong in xfsdump. 
When do_set_mark() sets first_mark_offset in the rec_hdr_t struct
it doesn't endian convert it. It is also not endian converted later
The following patch solves this, however you could also do the
endian conversion later in do_write().
...Juergen

--- cmd/xfsdump/common/drive_scsitape.c.orig    Fri Nov 30 19:43:48 2001
+++ cmd/xfsdump/common/drive_scsitape.c Sat Dec  1 20:25:35 2001
@@ -1940,7 +1940,7 @@
        rechdrp = ( rec_hdr_t * )contextp->dc_recp;
        if ( rechdrp->first_mark_offset == -1LL ) {
                ASSERT( nextoff != -1LL );
-               rechdrp->first_mark_offset = nextoff;
+               rechdrp->first_mark_offset = INT_GET(nextoff,ARCH_CONVERT);
        }

        /* put the mark on the tail of the queue.



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