diff options
Diffstat (limited to 'src/partition/repart.c')
-rw-r--r-- | src/partition/repart.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/partition/repart.c b/src/partition/repart.c index 081f95ebe7..1ee5eaa25e 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 */ |