mirror of
https://github.com/systemd/systemd.git
synced 2025-01-09 01:18:19 +03:00
repart: do not require /var/tmp if not used
If systemd-repart is running sufficiently early, /var/tmp might not be in place yet. But if there is nothing to minimize, we won't even use it. Let's move the check right before the first use. systemd-repart[441]: Device '/' has no dm-crypt/dm-verity device, no need to look for… systemd-repart[441]: Device /dev/sda opened and locked. systemd-repart[441]: Sector size of device is 512 bytes. Using grain size of 4096. systemd-repart[441]: Could not determine temporary directory: No such file or directory systemd[1]: systemd-repart.service: Child 441 belongs to systemd-repart.service. systemd[1]: systemd-repart.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: systemd-repart.service: Failed with result 'exit-code'.
This commit is contained in:
parent
e0ea6af3b3
commit
c264ec5f53
@ -5515,15 +5515,11 @@ static int fd_apparent_size(int fd, uint64_t *ret) {
|
||||
}
|
||||
|
||||
static int context_minimize(Context *context) {
|
||||
const char *vt;
|
||||
const char *vt = NULL;
|
||||
int r;
|
||||
|
||||
assert(context);
|
||||
|
||||
r = var_tmp_dir(&vt);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not determine temporary directory: %m");
|
||||
|
||||
LIST_FOREACH(partitions, p, context->partitions) {
|
||||
_cleanup_(rm_rf_physical_and_freep) char *root = NULL;
|
||||
_cleanup_(unlink_and_freep) char *temp = NULL;
|
||||
@ -5556,6 +5552,12 @@ static int context_minimize(Context *context) {
|
||||
log_info("Pre-populating %s filesystem of partition %s twice to calculate minimal partition size",
|
||||
p->format, strna(hint));
|
||||
|
||||
if (!vt) {
|
||||
r = var_tmp_dir(&vt);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not determine temporary directory: %m");
|
||||
}
|
||||
|
||||
r = tempfn_random_child(vt, "repart", &temp);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to generate temporary file path: %m");
|
||||
@ -5713,6 +5715,12 @@ static int context_minimize(Context *context) {
|
||||
log_info("Pre-populating verity hash data of partition %s to calculate minimal partition size",
|
||||
strna(hint));
|
||||
|
||||
if (!vt) {
|
||||
r = var_tmp_dir(&vt);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Could not determine temporary directory: %m");
|
||||
}
|
||||
|
||||
r = tempfn_random_child(vt, "repart", &temp);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to generate temporary file path: %m");
|
||||
|
Loading…
Reference in New Issue
Block a user