Signed-off-by: Jasmin Jessich <jas...@anw.at>
---
 PVE/API2/Qemu.pm  | 5 ++++-
 PVE/QemuServer.pm | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index a0fcd28..32ee6de 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -71,6 +71,7 @@ my $check_storage_access_clone = sub {
        my ($ds, $drive) = @_;
 
        my $isCDROM = PVE::QemuServer::drive_is_cdrom($drive);
+       my $isDEVICE = PVE::QemuServer::drive_is_device($drive);
 
        my $volid = $drive->{file};
 
@@ -86,7 +87,7 @@ my $check_storage_access_clone = sub {
                $sharedvm = 0 if !$scfg->{shared};
 
            }
-       } else {
+       } elsif (!$isDEVICE) {
            my ($sid, $volname) = PVE::Storage::parse_volume_id($volid);
            my $scfg = PVE::Storage::storage_config($storecfg, $sid);
            $sharedvm = 0 if !$scfg->{shared};
@@ -2260,6 +2261,8 @@ __PACKAGE__->register_method({
                    die "unable to parse drive options for '$opt'\n" if !$drive;
                    if (PVE::QemuServer::drive_is_cdrom($drive)) {
                        $newconf->{$opt} = $value; # simply copy configuration
+                   } elsif (PVE::QemuServer::drive_is_device($drive)) {
+                       $newconf->{$opt} = $value; # simply copy configuration
                    } else {
                        if ($param->{full}) {
                            die "Full clone feature is not available"
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 98264d1..49fbffa 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1272,6 +1272,14 @@ sub drive_is_cdrom {
 
 }
 
+sub drive_is_device {
+    my ($drive) = @_;
+
+    my $volid = $drive->{file};
+
+    return $volid && $volid =~ m/^\/dev\//;
+}
+
 sub parse_hostpci {
     my ($value) = @_;
 
-- 
1.8.3.2

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to