From: Lennart Poettering Date: Fri, 19 Mar 2021 19:31:29 +0000 (+0100) Subject: repart: when we can't fit in all partitions explain how large the image would have... X-Git-Tag: v249-rc1~388^2~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d17db7b2bf716dbf6c20691755b4710a8068e284;p=thirdparty%2Fsystemd.git repart: when we can't fit in all partitions explain how large the image would have to be --- diff --git a/src/partition/repart.c b/src/partition/repart.c index 081f95ebe70..1ee5eaa25e8 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -4167,8 +4167,6 @@ static int determine_auto_size(Context *c) { Partition *p; assert_se(c); - assert_se(arg_size == UINT64_MAX); - assert_se(arg_size_auto); LIST_FOREACH(partitions, p, c->partitions) { uint64_t m; @@ -4352,9 +4350,13 @@ static int run(int argc, char *argv[]) { if (context_allocate_partitions(context)) break; /* Success! */ - if (!context_drop_one_priority(context)) - return log_error_errno(SYNTHETIC_ERRNO(ENOSPC), - "Can't fit requested partitions into free space, refusing."); + if (!context_drop_one_priority(context)) { + r = log_error_errno(SYNTHETIC_ERRNO(ENOSPC), + "Can't fit requested partitions into free space, refusing."); + + determine_auto_size(context); + return r; + } } /* Now assign free space according to the weight logic */