diff --git a/src/lxc/lxc-destroy.in b/src/lxc/lxc-destroy.in index 683ab28a4..846266cad 100644 --- a/src/lxc/lxc-destroy.in +++ b/src/lxc/lxc-destroy.in @@ -106,8 +106,8 @@ if [ $? -eq 0 ]; then fi # Deduce the type of rootfs -# If LVM partition, destroy it. If anything else, ignore it. We'll support -# deletion of others later. +# If LVM partition, destroy it. For btrfs, we delete the subvolue. If anything +# else, ignore it. We'll support deletion of others later. rootdev=`grep lxc.rootfs $lxc_path/$lxc_name/config 2>/dev/null | sed -e 's/^[^/]*/\//'` if [ -n "$rootdev" ]; then if [ -b "$rootdev" ]; then @@ -117,8 +117,13 @@ if [ -n "$rootdev" ]; then lvremove -f $rootdev fi elif [ -h "$rootdev" -o -d "$rootdev" ]; then - # In case rootfs is not under $lxc_path/$lxc_name, remove it - rm -rf --one-file-system --preserve-root $rootdev + if which btrfs >/dev/null 2>&1 && + btrfs subvolume list "$rootdev" >/dev/null 2>&1; then + btrfs subvolume delete "$rootdev" + else + # In case rootfs is not under $lxc_path/$lxc_name, remove it + rm -rf --one-file-system --preserve-root $rootdev + fi fi fi # recursively remove the container to remove old container configuration