diskmanage: add helper for udev workaround

to avoid duplication. Current callers pass along at least one device,
but anticipate future callers that might call with the empty list. Do
nothing in that case, rather than triggering everything.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
Fabian Ebner
2021-10-25 15:47:47 +02:00
committed by Fabian Grünbichler
parent a83d8eb178
commit 26082b7daf
6 changed files with 16 additions and 26 deletions

View File

@ -306,12 +306,7 @@ __PACKAGE__->register_method ({
my $worker = sub {
PVE::Diskmanage::wipe_blockdev($disk);
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
# udev database is updated.
eval { run_command(['udevadm', 'trigger', $disk]); };
warn $@ if $@;
PVE::Diskmanage::udevadm_trigger($disk);
};
my $basename = basename($disk); # avoid '/' in the ID

View File

@ -275,11 +275,7 @@ __PACKAGE__->register_method ({
$write_ini->($ini, $mountunitpath);
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
# udev database is updated and the $uuid_path symlink is actually created!
eval { run_command(['udevadm', 'trigger', $part]); };
warn $@ if $@;
PVE::Diskmanage::udevadm_trigger($part);
run_command(['systemctl', 'daemon-reload']);
run_command(['systemctl', 'enable', $mountunitname]);

View File

@ -163,11 +163,7 @@ __PACKAGE__->register_method ({
PVE::Storage::LVMPlugin::lvm_create_volume_group($dev, $name);
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
# udev database is updated.
eval { run_command(['udevadm', 'trigger', $dev]); };
warn $@ if $@;
PVE::Diskmanage::udevadm_trigger($dev);
if ($param->{add_storage}) {
my $storage_params = {

View File

@ -141,11 +141,7 @@ __PACKAGE__->register_method ({
$name
]);
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
# udev database is updated.
eval { run_command(['udevadm', 'trigger', $dev]); };
warn $@ if $@;
PVE::Diskmanage::udevadm_trigger($dev);
if ($param->{add_storage}) {
my $storage_params = {

View File

@ -426,11 +426,7 @@ __PACKAGE__->register_method ({
run_command($cmd);
}
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
# udev database is updated.
eval { run_command(['udevadm', 'trigger', $devs->@*]); };
warn $@ if $@;
PVE::Diskmanage::udevadm_trigger($devs->@*);
if ($param->{add_storage}) {
my $storage_params = {

View File

@ -966,4 +966,15 @@ sub wipe_blockdev {
}
}
# FIXME: Remove once we depend on systemd >= v249.
# Work around udev bug https://github.com/systemd/systemd/issues/18525 ensuring database is updated.
sub udevadm_trigger {
my @devs = @_;
return if scalar(@devs) == 0;
eval { run_command(['udevadm', 'trigger', @devs]); };
warn $@ if $@;
}
1;