[pve-devel] [PATCH container] fix #3421: allow custom storage plugins to support rootfs
Lorenz Stechauner
l.stechauner at proxmox.com
Tue May 11 13:02:13 CEST 2021
Signed-off-by: Lorenz Stechauner <l.stechauner at proxmox.com>
---
src/PVE/LXC.pm | 28 +++++++---------------------
1 file changed, 7 insertions(+), 21 deletions(-)
diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 7e6f378..9c1227c 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -1685,8 +1685,7 @@ sub __mountpoint_mount {
if ($scfg->{path}) {
$mounted_dev = run_with_loopdev($domount, $path, $readonly);
$use_loopdev = 1;
- } elsif ($scfg->{type} eq 'drbd' || $scfg->{type} eq 'lvm' ||
- $scfg->{type} eq 'rbd' || $scfg->{type} eq 'lvmthin') {
+ } elsif ($scfg->{content}->{rootdir}) {
$mounted_dev = $path;
&$domount($path);
} else {
@@ -1871,30 +1870,17 @@ sub alloc_disk {
eval {
my $do_format = 0;
- if ($scfg->{type} eq 'dir' || $scfg->{type} eq 'nfs' || $scfg->{type} eq 'cifs' ) {
+ if ($scfg->{type} eq 'zfspool') {
+ $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'subvol', undef, $size_kb);
+ $needs_chown = 1;
+ } elsif ($scfg->{content}->{rootdir}) {
if ($size_kb > 0) {
- $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'raw',
- undef, $size_kb);
+ $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'raw', undef, $size_kb);
$do_format = 1;
} else {
- $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'subvol',
- undef, 0);
+ $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'subvol', undef, 0);
$needs_chown = 1;
}
- } elsif ($scfg->{type} eq 'zfspool') {
-
- $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'subvol',
- undef, $size_kb);
- $needs_chown = 1;
- } elsif ($scfg->{type} eq 'drbd' || $scfg->{type} eq 'lvm' || $scfg->{type} eq 'lvmthin') {
-
- $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'raw', undef, $size_kb);
- $do_format = 1;
-
- } elsif ($scfg->{type} eq 'rbd') {
-
- $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 'raw', undef, $size_kb);
- $do_format = 1;
} else {
die "unable to create containers on storage type '$scfg->{type}'\n";
}
--
2.20.1
More information about the pve-devel
mailing list