From: Eric Sandeen <sandeen@sandeen.net>
To: Eric Sandeen <sandeen@redhat.com>, xfs-oss <xfs@oss.sgi.com>,
Christoph Hellwig <hch@infradead.org>
Subject: [PATCH V2] xfs_copy: band-aids for CRC filesystems
Date: Wed, 26 Feb 2014 10:22:44 -0600 [thread overview]
Message-ID: <530E14D4.9050601@sandeen.net> (raw)
In-Reply-To: <530D4B68.9090905@redhat.com>
xfs_copy needs a fair bit of work for CRCs because it rewrites
UUIDs by default, but this change will get it working properly
with the "-d" (duplicate) option which keeps the same UUID.
Accept the the CRC magic valid, change the ASSERT() to an error
message and exit more gracefully, and don't
even get started if we don't have the '-d' option.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 9986fbf..f443568 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -684,6 +684,16 @@ main(int argc, char **argv)
sb = &mbuf.m_sb;
libxfs_sb_from_disk(sb, XFS_BUF_TO_SBP(sbp));
+ /*
+ * For now, V5 superblock filesystems are not supported without -d;
+ * we do not have the infrastructure yet to fix CRCs when a new UUID
+ * is generated.
+ */
+ if (xfs_sb_version_hascrc(sb) && !duplicate) {
+ do_log(_("%s: Cannot yet copy V5 fs without '-d'\n"), progname);
+ exit(1);
+ }
+
mp = libxfs_mount(&mbuf, sb, xargs.ddev, xargs.logdev, xargs.rtdev, 0);
if (mp == NULL) {
do_log(_("%s: %s filesystem failed to initialize\n"
@@ -957,7 +967,13 @@ main(int argc, char **argv)
((char *)btree_buf.data +
pos - btree_buf.position);
- ASSERT(be32_to_cpu(block->bb_magic) == XFS_ABTB_MAGIC);
+ if (be32_to_cpu(block->bb_magic) !=
+ (xfs_sb_version_hascrc(&mp->m_sb) ?
+ XFS_ABTB_CRC_MAGIC : XFS_ABTB_MAGIC)) {
+ do_log(_("Bad btree magic 0x%x\n"),
+ be32_to_cpu(block->bb_magic));
+ exit(1);
+ }
if (be16_to_cpu(block->bb_level) == 0)
break;
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2014-02-26 16:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-26 2:03 [PATCH] xfs_copy: accept XFS_ABTB_CRC_MAGIC Eric Sandeen
2014-02-26 2:07 ` Christoph Hellwig
2014-02-26 6:02 ` Dave Chinner
2014-02-26 16:22 ` Eric Sandeen [this message]
2014-02-26 20:48 ` [PATCH V2] xfs_copy: band-aids for CRC filesystems Christoph Hellwig
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=530E14D4.9050601@sandeen.net \
--to=sandeen@sandeen.net \
--cc=hch@infradead.org \
--cc=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