From: Eric Sandeen <sandeen@redhat.com>
To: xfs-oss <xfs@oss.sgi.com>
Subject: [PATCH] xfs_mdrestore: initialize sb prior to xfs_sb_from_disk()
Date: Thu, 05 Jun 2014 18:09:16 -0500 [thread overview]
Message-ID: <5390F89C.2050305@redhat.com> (raw)
If we xfs_mdrestore an image from a non-crc filesystem, lo
and behold the restored image has gained a CRC:
# db/xfs_metadump.sh -o /dev/sdc1 - | xfs_mdrestore - test.img
# xfs_db -c "sb 0" -c "p crc" /dev/sdc1
crc = 0 (correct)
# xfs_db -c "sb 0" -c "p crc" test.img
crc = 0xb6f8d6a0 (correct)
Obviously it can't really be correct :)
The problem is, xfs_sb_from_disk doesn't fill in the sb_crc
field.
An earlier commit:
47de6e1 repair: ensure that unused superblock fields are zeroed
fixed this same sort of problem for xfs_repair. Do the same
for mdrestore.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
But ... should we maybe just do this once and for all in
xfs_sb_from_disk? I'm not sure leaving it up to every
caller is a good idea, unless somebody ahs a reason to
pre-populate some fields - I can't imagine why that would
be, though...
diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
index e57bdb2..0453f17 100644
--- a/mdrestore/xfs_mdrestore.c
+++ b/mdrestore/xfs_mdrestore.c
@@ -104,6 +104,7 @@ perform_restore(
1, src_f) != 1)
fatal("error reading from file: %s\n", strerror(errno));
+ memset(&sb, 0, sizeof(struct xfs_sb));
libxfs_sb_from_disk(&sb, (xfs_dsb_t *)block_buffer);
if (sb.sb_magicnum != XFS_SB_MAGIC)
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2014-06-05 23:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-05 23:09 Eric Sandeen [this message]
2014-06-05 23:56 ` [PATCH] xfs_mdrestore: initialize sb prior to xfs_sb_from_disk() Dave Chinner
2014-06-06 0:00 ` Eric Sandeen
2014-06-06 1:42 ` Dave Chinner
2014-06-06 2:53 ` Eric Sandeen
2014-06-09 20:58 ` Eric Sandeen
2014-06-09 21:30 ` [PATCH V2] xfs: fix crc field handling in xfs_sb_to/from_disk Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5390F89C.2050305@redhat.com \
--to=sandeen@redhat.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.