integritysetup: add remote-integritysetup.target to match remote-{crypt|verity}setup.target

Let's make the three subsystems more alike, and add remote-*setup.traget
for all three, enable them all three in the presets, and make them
behave in a similar fashion.
This commit is contained in:
Lennart Poettering
2025-02-25 21:40:05 +01:00
parent 65ced7578e
commit 810708f4b8
6 changed files with 107 additions and 6 deletions
+23 -5
View File
@@ -36,12 +36,17 @@ static int create_disk(
_cleanup_free_ char *n = NULL, *dd = NULL, *e = NULL, *name_escaped = NULL, *key_file_escaped = NULL;
_cleanup_fclose_ FILE *f = NULL;
int r;
char *dmname = NULL;
bool noauto, nofail, netdev;
int r;
assert(name);
assert(device);
noauto = fstab_test_yes_no_option(options, "noauto\0" "auto\0");
nofail = fstab_test_yes_no_option(options, "nofail\0" "fail\0");
netdev = fstab_test_option(options, "_netdev\0");
name_escaped = specifier_escape(name);
if (!name_escaped)
return log_oom();
@@ -88,13 +93,20 @@ static int create_disk(
"Before=blockdev@dev-mapper-%%i.target\n"
"Wants=blockdev@dev-mapper-%%i.target\n"
"Conflicts=umount.target\n"
"Before=integritysetup.target\n"
"BindsTo=%s\n"
"After=%s\n"
"Before=umount.target\n",
arg_integritytab,
dd, dd);
if (netdev)
fprintf(f, "After=remote-fs-pre.target\n");
if (!nofail)
fprintf(f,
"Before=%s\n",
netdev ? "remote-integritysetup.target" : "integritysetup.target");
fprintf(f,
"\n"
"[Service]\n"
@@ -110,9 +122,15 @@ static int create_disk(
if (r < 0)
return log_error_errno(r, "Failed to write unit file %s: %m", n);
r = generator_add_symlink(arg_dest, "integritysetup.target", "requires", n);
if (r < 0)
return r;
if (!noauto) {
r = generator_add_symlink(
arg_dest,
netdev ? "remote-integritysetup.target" : "integritysetup.target",
nofail ? "wants" : "requires",
n);
if (r < 0)
return r;
}
dmname = strjoina("dev-mapper-", e, ".device");
return generator_add_symlink(arg_dest, dmname, "requires", n);