]> git.apps.os.sepia.ceph.com Git - xfsprogs-dev.git/commitdiff
xfs_mdrestore: EXTERNALLOG is a compat value, not incompat
authorDarrick J. Wong <djwong@kernel.org>
Wed, 20 Dec 2023 16:53:45 +0000 (08:53 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Fri, 22 Dec 2023 02:29:14 +0000 (18:29 -0800)
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>
mdrestore/xfs_mdrestore.c

index 3190e07e478dc861b128511b68f16c66348e622f..1d65765da3b6c42657fe9b2402501f5dc7337625 100644 (file)
@@ -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");
 }