Fix LUKS2 device status in inline HW mode and detached header

Internal type is not set if detached header is not specified,
but inline tag check should be done anyway.
This commit is contained in:
Milan Broz
2025-12-11 23:40:14 +01:00
parent 403def1d11
commit 55e0209a4e

View File

@@ -5838,8 +5838,12 @@ int crypt_get_active_device(struct crypt_device *cd, const char *name,
if (r < 0) if (r < 0)
return r; return r;
/* For LUKS2 with integrity we need flags from underlying dm-integrity */ /*
if (isLUKS2(cd->type) && crypt_get_integrity_tag_size(cd) && * For integrity and LUKS2 (and detached header where context is NULL)
* 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))) { (iname = dm_get_active_iname(cd, name))) {
if (dm_query_device(cd, iname, 0, &dmdi) >= 0) if (dm_query_device(cd, iname, 0, &dmdi) >= 0)
dmd.flags |= dmdi.flags; dmd.flags |= dmdi.flags;