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@xxxxxxxxxx> --- 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@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs