applied, thanks On Mon, Aug 08, 2022 at 02:36:42PM +0200, Fiona Ebner wrote: > Previously, bind and device mount points were applied to the > configuration, but not actually hot-plugged/mounted, causing a > mismatch for running containers. > > Reported in the community forum: > https://forum.proxmox.com/threads/113364/ > > Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> > --- > > Better viewed with -w > > src/PVE/LXC/Config.pm | 60 +++++++++++++++++++++---------------------- > 1 file changed, 29 insertions(+), 31 deletions(-) > > diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm > index b4b0261..23c1ba7 100644 > --- a/src/PVE/LXC/Config.pm > +++ b/src/PVE/LXC/Config.pm > @@ -1471,40 +1471,38 @@ sub apply_pending_mountpoint { > > my $mp = $class->parse_volume($opt, $conf->{pending}->{$opt}); > my $old = $conf->{$opt}; > - if ($mp->{type} eq 'volume') { > - if ($mp->{volume} =~ $PVE::LXC::NEW_DISK_RE) { > - my $original_value = $conf->{pending}->{$opt}; > - my $vollist = PVE::LXC::create_disks( > - $storecfg, > - $vmid, > - { $opt => $original_value }, > - $conf, > - 1, > - ); > - if ($running) { > - # Re-parse mount point: > - my $mp = $class->parse_volume($opt, $conf->{pending}->{$opt}); > - eval { > - PVE::LXC::mountpoint_hotplug($vmid, $conf, $opt, $mp, > $storecfg); > - }; > - my $err = $@; > - if ($err) { > - PVE::LXC::destroy_disks($storecfg, $vollist); > - # The pending-changes code collects errors but keeps on > looping through further > - # pending changes, so unroll the change in $conf as well if > destroy_disks() > - # didn't die(). > - $conf->{pending}->{$opt} = $original_value; > - die $err; > - } > - } > - } else { > - die "skip\n" if $running && defined($old); # TODO: "changing" mount > points? > - $rescan_volume->($storecfg, $mp); > - if ($running) { > + if ($mp->{type} eq 'volume' && $mp->{volume} =~ $PVE::LXC::NEW_DISK_RE) { > + my $original_value = $conf->{pending}->{$opt}; > + my $vollist = PVE::LXC::create_disks( > + $storecfg, > + $vmid, > + { $opt => $original_value }, > + $conf, > + 1, > + ); > + if ($running) { > + # Re-parse mount point: > + my $mp = $class->parse_volume($opt, $conf->{pending}->{$opt}); > + eval { > PVE::LXC::mountpoint_hotplug($vmid, $conf, $opt, $mp, > $storecfg); > + }; > + my $err = $@; > + if ($err) { > + PVE::LXC::destroy_disks($storecfg, $vollist); > + # The pending-changes code collects errors but keeps on looping > through further > + # pending changes, so unroll the change in $conf as well if > destroy_disks() > + # didn't die(). > + $conf->{pending}->{$opt} = $original_value; > + die $err; > } > - $conf->{pending}->{$opt} = $class->print_ct_mountpoint($mp); > } > + } else { > + die "skip\n" if $running && defined($old); # TODO: "changing" mount > points? > + $rescan_volume->($storecfg, $mp) if $mp->{type} eq 'volume'; > + if ($running) { > + PVE::LXC::mountpoint_hotplug($vmid, $conf, $opt, $mp, $storecfg); > + } > + $conf->{pending}->{$opt} = $class->print_ct_mountpoint($mp); > } > > if (defined($old)) { > -- > 2.30.2
_______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel