public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@sandeen.net>
To: Eric Sandeen <sandeen@redhat.com>
Cc: xfs-oss <xfs@oss.sgi.com>
Subject: [PATCH 2/3] xfsdump: default to V3, use V4 if projid32bit is set
Date: Fri, 12 Oct 2012 16:37:30 -0500	[thread overview]
Message-ID: <50788D9A.8080302@sandeen.net> (raw)
In-Reply-To: <50788C50.40600@redhat.com>

Because 32-bit project ID is not default and semi-rare,
default to version 3 dumps unless dumping a filesystem
with the 32-bit project ID feature flag set.

XFS_FSOP_GEOM_FLAGS_PROJID32 is a newish flag so I've
redefined it here just in caes as well.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---

diff --git a/common/fs.h b/common/fs.h
index 878385b..7e63f8e 100644
--- a/common/fs.h
+++ b/common/fs.h
@@ -26,6 +26,10 @@
 #define FS_MAXNAMELEN_DEFAULT	256
 #define FS_MAXPATHLEN_DEFAULT	1024
 
+#ifndef XFS_FSOP_GEOM_FLAGS_PROJID32
+#define XFS_FSOP_GEOM_FLAGS_PROJID32 0x0800
+#endif
+
 /* fs_info - decides if a source name describes a file system, and if
  * so returns useful information about that file system.
  *
diff --git a/common/global.h b/common/global.h
index 5138ed8..a847c5d 100644
--- a/common/global.h
+++ b/common/global.h
@@ -29,14 +29,14 @@
 #define GLOBAL_HDR_VERSION_2	2
 #define GLOBAL_HDR_VERSION_3	3
 #define GLOBAL_HDR_VERSION_4	4
-	/* version 4 adds 32-bit projid (projid_hi)
+	/* version 4 adds 32-bit projid (projid_hi) only used if projid32 in place.
 	 * version 3 uses the full 32-bit inode generation number in direnthdr_t.
 	 * version 2 adds encoding of holes and a change to on-tape inventory format.
 	 * version 1 adds extended file attribute dumping.
 	 * version 0 xfsrestore can't handle media produced
 	 * by version 1 xfsdump. 
 	 */
-#define GLOBAL_HDR_VERSION	GLOBAL_HDR_VERSION_4
+#define GLOBAL_HDR_VERSION	GLOBAL_HDR_VERSION_3
 
 #define GLOBAL_HDR_STRING_SZ	0x100
 #define GLOBAL_HDR_TIME_SZ	4
diff --git a/dump/content.c b/dump/content.c
index 9ed8459..94ca787 100644
--- a/dump/content.c
+++ b/dump/content.c
@@ -791,6 +791,15 @@ content_init( intgen_t argc,
 		      srcname );
 		return BOOL_FALSE;
 	}
+
+	/* If 32 bit project IDs are in use, bump the header version */
+	if ((fsflags & XFS_FSOP_GEOM_FLAGS_PROJID32) &&
+	    gwhdrtemplatep->gh_version < GLOBAL_HDR_VERSION_4) {
+		mlog( MLOG_NORMAL | MLOG_NOTE, _(
+			"32bit project ids in use, bumping to dump version 4\n"));
+		gwhdrtemplatep->gh_version = GLOBAL_HDR_VERSION_4;
+	}
+
 	/* place the fs info in the write hdr template
 	 */
 	( void )strncpyterm( cwhdrtemplatep->ch_mntpnt,


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  parent reply	other threads:[~2012-10-12 21:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-12 21:32 [PATCH 0/3] xfsdump: more projid32bit fixes Eric Sandeen
2012-10-12 21:35 ` [PATCH 1/3] xfsdump: extend fs_info to gather fs feature flags Eric Sandeen
2012-11-09 18:31   ` Rich Johnston
2012-10-12 21:37 ` Eric Sandeen [this message]
2012-11-09 18:31   ` [PATCH 2/3] xfsdump: default to V3, use V4 if projid32bit is set Rich Johnston
2012-11-09 18:32     ` Eric Sandeen
2012-10-12 21:42 ` [PATCH 3/3] xfsdump: refuse restore of V4 format unless FS has projid32bit set Eric Sandeen
2012-11-09 18:32   ` Rich Johnston
2012-10-22 14:36 ` [PATCH 0/3] xfsdump: more projid32bit fixes Eric Sandeen
2012-10-22 15:56   ` Ben Myers
2012-10-22 16:22     ` Eric Sandeen
2012-10-22 20:24       ` Ben Myers
2012-10-22 20:30         ` Eric Sandeen
2012-10-22 20:11 ` 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=50788D9A.8080302@sandeen.net \
    --to=sandeen@sandeen.net \
    --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