lock_config($vmid, $updatefn);
}
-sub has_feature{
+sub has_feature {
my ($feature, $conf, $storecfg, $snapname, $running) = @_;
my $err = undef;
my $storecfg = PVE::Storage::config();
my $i = 0;
+ # First check if all disks have feature 'clone'.
+ # Note: there is no feature 'create_base', but we can safely assume
+ # that a storage with feature 'clone' can create base images.
+ foreach_drive($conf, sub {
+ my ($ds, $drive) = @_;
+
+ return if drive_is_cdrom($drive);
+ return if $disk && $ds ne $disk;
+
+ my $volid = $drive->{file};
+ die "volume '$volid' does not support template/clone\n"
+ if !PVE::Storage::volume_has_feature($storecfg, 'clone', $volid);
+ });
+
foreach_drive($conf, sub {
my ($ds, $drive) = @_;