mirror of
https://github.com/systemd/systemd
synced 2024-10-01 13:55:20 +00:00
Merge pull request #33408 from poettering/install-change-fix
install: some follow-up fixes to #33254
This commit is contained in:
commit
5ab6845036
|
@ -1810,7 +1810,8 @@ static int install_info_discover(
|
|||
r = install_info_traverse(ctx, lp, info, flags, ret);
|
||||
|
||||
if (r < 0)
|
||||
install_changes_add(changes, n_changes, r, name_or_path, NULL);
|
||||
return install_changes_add(changes, n_changes, r, name_or_path, NULL);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -1871,7 +1872,10 @@ int unit_file_verify_alias(
|
|||
if (!p)
|
||||
p = endswith(dir, ".requires");
|
||||
if (!p) {
|
||||
install_changes_add(changes, n_changes, -EXDEV, dst, NULL);
|
||||
r = install_changes_add(changes, n_changes, -EXDEV, dst, NULL);
|
||||
if (r != -EXDEV)
|
||||
return r;
|
||||
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EXDEV), "Invalid path \"%s\" in alias.", dir);
|
||||
}
|
||||
|
||||
|
@ -1879,7 +1883,9 @@ int unit_file_verify_alias(
|
|||
|
||||
UnitNameFlags type = unit_name_classify(dir);
|
||||
if (type < 0) {
|
||||
install_changes_add(changes, n_changes, -EXDEV, dst, NULL);
|
||||
r = install_changes_add(changes, n_changes, -EXDEV, dst, NULL);
|
||||
if (r != -EXDEV)
|
||||
return r;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EXDEV),
|
||||
"Invalid unit name component \"%s\" in alias.", dir);
|
||||
}
|
||||
|
@ -1891,7 +1897,10 @@ int unit_file_verify_alias(
|
|||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to verify alias validity: %m");
|
||||
if (r == 0) {
|
||||
install_changes_add(changes, n_changes, -EXDEV, dst, info->name);
|
||||
r = install_changes_add(changes, n_changes, -EXDEV, dst, info->name);
|
||||
if (r != -EXDEV)
|
||||
return r;
|
||||
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EXDEV),
|
||||
"Invalid unit \"%s\" symlink \"%s\".",
|
||||
info->name, dst);
|
||||
|
@ -1905,7 +1914,9 @@ int unit_file_verify_alias(
|
|||
|
||||
UnitNameFlags type = unit_name_to_instance(info->name, &inst);
|
||||
if (type < 0) {
|
||||
install_changes_add(changes, n_changes, -EUCLEAN, info->name, NULL);
|
||||
r = install_changes_add(changes, n_changes, -EUCLEAN, info->name, NULL);
|
||||
if (r != -EUCLEAN)
|
||||
return r;
|
||||
return log_debug_errno(type, "Failed to extract instance name from \"%s\": %m", info->name);
|
||||
}
|
||||
|
||||
|
@ -2288,10 +2299,14 @@ static int install_context_mark_for_removal(
|
|||
}
|
||||
} else if (r < 0) {
|
||||
log_debug_errno(r, "Failed to find unit %s, removing name: %m", i->name);
|
||||
install_changes_add(changes, n_changes, r, i->path ?: i->name, NULL);
|
||||
int k = install_changes_add(changes, n_changes, r, i->path ?: i->name, NULL);
|
||||
if (k != r)
|
||||
return k;
|
||||
} else if (i->install_mode == INSTALL_MODE_MASKED) {
|
||||
log_debug("Unit file %s is masked, ignoring.", i->name);
|
||||
install_changes_add(changes, n_changes, INSTALL_CHANGE_IS_MASKED, i->path ?: i->name, NULL);
|
||||
r = install_changes_add(changes, n_changes, INSTALL_CHANGE_IS_MASKED, i->path ?: i->name, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
continue;
|
||||
} else if (i->install_mode != INSTALL_MODE_REGULAR) {
|
||||
log_debug("Unit %s has install mode %s, ignoring.",
|
||||
|
@ -2439,10 +2454,8 @@ int unit_file_unmask(
|
|||
return -ENOMEM;
|
||||
|
||||
if (!dry_run && unlink(path) < 0) {
|
||||
if (errno != ENOENT) {
|
||||
RET_GATHER(r, -errno);
|
||||
install_changes_add(changes, n_changes, -errno, path, NULL);
|
||||
}
|
||||
if (errno != ENOENT)
|
||||
RET_GATHER(r, install_changes_add(changes, n_changes, -errno, path, NULL));
|
||||
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue