From 973d6be4026340e31fc8ceda8e98b7fc16df4b71 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 16 Aug 2023 16:53:02 +0200 Subject: [PATCH] repart: Default to swap format for swap partitions --- src/partition/repart.c | 19 ++++++++++++++----- test/TEST-58-REPART/test.sh | 1 + 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/partition/repart.c b/src/partition/repart.c index de7de65d721..06494dd5b9d 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -1733,11 +1733,20 @@ static int partition_read_definition(Partition *p, const char *path, const char return log_syntax(NULL, LOG_ERR, path, 1, SYNTHETIC_ERRNO(EINVAL), "Format=swap and CopyFiles= cannot be combined, refusing."); - if (!p->format && (!strv_isempty(p->copy_files) || !strv_isempty(p->make_directories) || (p->encrypt != ENCRYPT_OFF && !(p->copy_blocks_path || p->copy_blocks_auto)))) { - /* Pick "vfat" as file system for esp and xbootldr partitions, otherwise default to "ext4". */ - p->format = strdup(IN_SET(p->type.designator, PARTITION_ESP, PARTITION_XBOOTLDR) ? "vfat" : "ext4"); - if (!p->format) - return log_oom(); + if (!p->format) { + const char *format = NULL; + + if (!strv_isempty(p->copy_files) || !strv_isempty(p->make_directories) || (p->encrypt != ENCRYPT_OFF && !(p->copy_blocks_path || p->copy_blocks_auto))) + /* Pick "vfat" as file system for esp and xbootldr partitions, otherwise default to "ext4". */ + format = IN_SET(p->type.designator, PARTITION_ESP, PARTITION_XBOOTLDR) ? "vfat" : "ext4"; + else if (p->type.designator == PARTITION_SWAP) + format = "swap"; + + if (format) { + p->format = strdup(format); + if (!p->format) + return log_oom(); + } } if (p->minimize != MINIMIZE_OFF && !p->format && p->verity != VERITY_HASH) diff --git a/test/TEST-58-REPART/test.sh b/test/TEST-58-REPART/test.sh index 06b1313477a..14898b5d390 100755 --- a/test/TEST-58-REPART/test.sh +++ b/test/TEST-58-REPART/test.sh @@ -22,6 +22,7 @@ test_append_files() { fi inst_binary mcopy + image_install mkswap if command -v openssl >/dev/null 2>&1; then inst_binary openssl fi