From: Nick Labich Date: Wed, 9 Apr 2025 19:32:11 +0000 (+0000) Subject: repart: mkfs.btrfs --subvol option format change X-Git-Tag: v258-rc1~849 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3d115fb6c834ba95bc565eb81b29a5e0e0aa3b57;p=thirdparty%2Fsystemd.git repart: mkfs.btrfs --subvol option format change Adapt repart mkfs.btrfs invocation to match the latest format: (btrfs-progs@8ba72e45c8a6da1275b448ad4912d96e0a2c54b5) Fixes #37074 --- diff --git a/src/repart/repart.c b/src/repart/repart.c index a1236943cad..f9aa9ac43ca 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -312,19 +312,6 @@ static SubvolumeFlags subvolume_flags_from_string(const char *s) { return flags; } -static char* subvolume_flags_to_string(SubvolumeFlags flags) { - const char *l[CONST_LOG2U(_SUBVOLUME_FLAGS_MASK + 1) + 1]; /* one string per known flag at most */ - size_t m = 0; - - if (FLAGS_SET(flags, SUBVOLUME_RO)) - l[m++] = "ro"; - - assert(m < ELEMENTSOF(l)); - l[m] = NULL; - - return strv_join((char**) l, ","); -} - typedef struct Subvolume { char *path; SubvolumeFlags flags; @@ -6041,21 +6028,15 @@ static int append_btrfs_subvols(char ***l, OrderedHashmap *subvolumes, const cha assert(l); ORDERED_HASHMAP_FOREACH(subvolume, subvolumes) { - _cleanup_free_ char *s = NULL, *f = NULL; - - s = strdup(subvolume->path); - if (!s) - return log_oom(); + _cleanup_free_ char *s = NULL; - f = subvolume_flags_to_string(subvolume->flags); - if (!f) + if (streq_ptr(subvolume->path, default_subvolume) && !strextend(&s, "default")) return log_oom(); - if (streq_ptr(subvolume->path, default_subvolume) && - !strextend_with_separator(&f, ",", "default")) + if (FLAGS_SET(subvolume->flags, SUBVOLUME_RO) && !strextend_with_separator(&s, "-", "ro")) return log_oom(); - if (!isempty(f) && !strextend_with_separator(&s, ":", f)) + if (!strextend_with_separator(&s, ":", subvolume->path)) return log_oom(); r = strv_extend_many(l, "--subvol", s);