aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2023-12-20 08:53:45 -0800
committerDarrick J. Wong <djwong@kernel.org>2023-12-21 18:29:14 -0800
commitc0c39802f70c3fedd1038742782c59e9a28ea7d1 (patch)
tree08b2ae10372c29d636f06ba6bcbc696b9c3a2bdb
parent14c6aa54a08028108d7e4fc7ed4287b51fda17df (diff)
downloadxfsprogs-dev-c0c39802f70c3fedd1038742782c59e9a28ea7d1.tar.gz
xfs_mdrestore: EXTERNALLOG is a compat value, not incompat
Fix this check to look at the correct header field. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chandan Babu R <chandanbabu@kernel.org>
-rw-r--r--mdrestore/xfs_mdrestore.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
index 3190e07e47..1d65765da3 100644
--- a/mdrestore/xfs_mdrestore.c
+++ b/mdrestore/xfs_mdrestore.c
@@ -268,7 +268,7 @@ read_header_v2(
union mdrestore_headers *h,
FILE *md_fp)
{
- bool want_external_log;
+ unsigned int compat;
if (fread((uint8_t *)&(h->v2) + sizeof(h->v2.xmh_magic),
sizeof(h->v2) - sizeof(h->v2.xmh_magic), 1, md_fp) != 1)
@@ -280,10 +280,9 @@ read_header_v2(
if (h->v2.xmh_reserved != 0)
fatal("Metadump header's reserved field has a non-zero value\n");
- want_external_log = !!(be32_to_cpu(h->v2.xmh_incompat_flags) &
- XFS_MD2_COMPAT_EXTERNALLOG);
+ compat = be32_to_cpu(h->v2.xmh_compat_flags);
- if (want_external_log && !mdrestore.external_log)
+ if (!mdrestore.external_log && (compat & XFS_MD2_COMPAT_EXTERNALLOG))
fatal("External Log device is required\n");
}