From 78c017a8ed01c260e091bdf844508f8f695c60e1 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 20 Oct 2025 16:09:52 +0200 Subject: [PATCH] repart: split out that disarms automatic artifact removal --- src/repart/repart.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/repart/repart.c b/src/repart/repart.c index b74d9bb552..0af92eea61 100644 --- a/src/repart/repart.c +++ b/src/repart/repart.c @@ -855,6 +855,16 @@ static Context* context_free(Context *context) { DEFINE_TRIVIAL_CLEANUP_FUNC(Context*, context_free); +static void context_disarm_auto_removal(Context *context) { + assert(context); + + /* Make sure automatic removal of half-written artifacts is disarmed */ + context->node = mfree(context->node); + + LIST_FOREACH(partitions, p, context->partitions) + p->split_path = mfree(p->split_path); +} + static int context_add_free_area( Context *context, uint64_t size, @@ -10177,10 +10187,7 @@ static int run(int argc, char *argv[]) { (void) context_dump(context, /*late=*/ true); - context->node = mfree(context->node); - - LIST_FOREACH(partitions, p, context->partitions) - p->split_path = mfree(p->split_path); + context_disarm_auto_removal(context); return 0; }