From cdb6a5626089a56a7a135042be7c157acda70506 Mon Sep 17 00:00:00 2001 From: Kristina Hanicova Date: Wed, 10 Dec 2025 17:58:36 +0100 Subject: [PATCH] Set inline integrity flag if no underlying dm-integrity device Cryptsetup status does not report when the hw inline integrity is set without the underlying dm-integrity device. Fixes: #965 --- lib/setup.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/setup.c b/lib/setup.c index 1ee02db5..93c7ef5f 100644 --- a/lib/setup.c +++ b/lib/setup.c @@ -5843,11 +5843,13 @@ int crypt_get_active_device(struct crypt_device *cd, const char *name, * we need flags from underlying dm-integrity device. * This check must be skipped for non-LUKS2 integrity device. */ - if ((isLUKS2(cd->type) || !cd->type) && crypt_get_integrity_tag_size(cd) && - (iname = dm_get_active_iname(cd, name))) { - if (dm_query_device(cd, iname, 0, &dmdi) >= 0) - dmd.flags |= dmdi.flags; - free(iname); + if ((isLUKS2(cd->type) || !cd->type) && crypt_get_integrity_tag_size(cd)) { + if ((iname = dm_get_active_iname(cd, name))) { + if (dm_query_device(cd, iname, 0, &dmdi) >= 0) + dmd.flags |= dmdi.flags; + free(iname); + } else + dmd.flags |= (CRYPT_ACTIVATE_NO_JOURNAL | CRYPT_ACTIVATE_INLINE_MODE); } if (cd && isTCRYPT(cd->type)) {