[pve-devel] [PATCH container v6 4/4] add linked clone check when destroying container

Fiona Ebner f.ebner at proxmox.com
Tue May 20 16:13:40 CEST 2025


Nit: destroy template: add early check for linked clones of volumes

Am 20.05.25 um 11:08 schrieb Michael Köppl:
> This behavior matches the behavior already implemented for VMs and
> prevents partial storage deletion if a container template has a linked
> clone. In such cases, the destruction of the container template will
> now fail, informing the user that the base volume is still in use by
> the linked clone.
> 
> Originally-by: Stefan Hrdlicka <s.hrdlicka at proxmox.com>
> Signed-off-by: Michael Köppl <m.koeppl at proxmox.com>

With the comments addressed, consider this:

Reviewed-by: Fiona Ebner <f.ebner at proxmox.com>

> ---
>  src/PVE/LXC.pm | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index 6a1ce92..7bc566a 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -945,6 +945,18 @@ sub destroy_lxc_container {
>      my ($storage_cfg, $vmid, $conf, $replacement_conf, $purge_unreferenced) = @_;
>  
>      my $volids = {};
> +
> +    if ($conf->{template}) {
> +	PVE::LXC::Config->foreach_volume_full($conf, {include_unused => 1}, sub {

Style nit: usually, spaces are used after/before the curly braces for
such in-line hashes like: { include_unused => 1 }

> +	   my ($ms, $mountpoint) = @_;
> +	   my $volid = $mountpoint->{volume};
> +	   return if !$volid || PVE::LXC::Config->classify_mountpoint($volid) ne 'volume';
> +	   my $result = eval { PVE::Storage::volume_is_base_and_used($storage_cfg, $volid) };
> +	   die "failed to delete volume '$volid': $@\n" if $@;

s/failed to delete/failed to check for linked clones of/

No need for "\n" at the end, we expect $@ to already contain it.

> +	   die "base volume '$volid' is still in use by linked clone\n" if $result;
> +	});
> +    }
> +
>      my $remove_volume = sub {
>  	my ($ms, $mountpoint) = @_;
>  





More information about the pve-devel mailing list