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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox