summaryrefslogtreecommitdiffstats
path: root/src/partition/repart.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/partition/repart.c')
-rw-r--r--src/partition/repart.c12
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 */