diff --git a/src/repart/repart.c b/src/repart/repart.c index 71d456254e..3f8b24158b 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -7291,23 +7291,34 @@ static int resolve_copy_blocks_auto( * partitions in the host, using the appropriate directory as key and ensuring that the partition * type matches. */ - if (type.designator == PARTITION_ROOT) + switch (type.designator) { + + case PARTITION_ROOT: + case PARTITION_ROOT_VERITY: + case PARTITION_ROOT_VERITY_SIG: try1 = "/"; - else if (type.designator == PARTITION_USR) + break; + + case PARTITION_USR: + case PARTITION_USR_VERITY: + case PARTITION_USR_VERITY_SIG: try1 = "/usr/"; - else if (type.designator == PARTITION_ROOT_VERITY) - try1 = "/"; - else if (type.designator == PARTITION_USR_VERITY) - try1 = "/usr/"; - else if (type.designator == PARTITION_ESP) { + break; + + case PARTITION_ESP: try1 = "/efi/"; try2 = "/boot/"; - } else if (type.designator == PARTITION_XBOOTLDR) + break; + + case PARTITION_XBOOTLDR: try1 = "/boot/"; - else + break; + + default: return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Partition type " SD_ID128_FORMAT_STR " not supported from automatic source block device discovery.", SD_ID128_FORMAT_VAL(type.uuid)); + } r = find_backing_devno(try1, root, &devno); if (r == -ENOENT && try2)