Skip to content

Commit

Permalink
fstab-generator: unify initrd-root-device.target dependency handling …
Browse files Browse the repository at this point in the history
…code

This fixes a bug from #26038 where it would actually write generator
stuff during sysroot check when it was only supposed to check for daemon
reload.
  • Loading branch information
lilyinstarlight authored and yuwata committed Jul 7, 2023
1 parent 14be337 commit 9cf2203
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions src/fstab-generator/fstab-generator.c
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,12 @@ static int add_mount(
if (r < 0)
return r;

if (in_initrd() && path_equal(where, "/sysroot") && is_device_path(what)) {
r = generator_write_initrd_root_device_deps(dest, what);
if (r < 0)
return r;
}

r = write_mount_timeout(f, where, opts);
if (r < 0)
return r;
Expand Down Expand Up @@ -897,12 +903,6 @@ static int parse_fstab_one(
mount_is_network(fstype, options) ? SPECIAL_REMOTE_FS_TARGET :
SPECIAL_LOCAL_FS_TARGET;

if (is_sysroot && is_device_path(what)) {
r = generator_write_initrd_root_device_deps(arg_dest, what);
if (r < 0)
return r;
}

r = add_mount(source,
arg_dest,
what,
Expand Down Expand Up @@ -1090,12 +1090,6 @@ static int add_sysroot_mount(void) {

log_debug("Found entry what=%s where=/sysroot type=%s opts=%s", what, strna(arg_root_fstype), strempty(opts));

if (is_device_path(what)) {
r = generator_write_initrd_root_device_deps(arg_dest, what);
if (r < 0)
return r;
}

makefs = fstab_test_option(opts, "x-systemd.makefs\0");
flags = makefs * MOUNT_MAKEFS;

Expand Down

0 comments on commit 9cf2203

Please sign in to comment.