From b3ba95e493ea8890f93aa05fe6128e651fab08e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Link Date: Fri, 23 Jan 2015 10:32:37 +0100 Subject: [PATCH] zfs: move some code move the most part of alloc_image to ZFSDirPlugin Signed-off-by: Wolfgang Link --- PVE/Storage/ZFSDirPlugin.pm | 15 +++++++++++++++ PVE/Storage/ZFSPlugin.pm | 18 ++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/PVE/Storage/ZFSDirPlugin.pm b/PVE/Storage/ZFSDirPlugin.pm index 929fb20..e041ffc 100644 --- a/PVE/Storage/ZFSDirPlugin.pm +++ b/PVE/Storage/ZFSDirPlugin.pm @@ -149,6 +149,21 @@ sub zfs_request { return $msg; } +sub alloc_image { + my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_; + + die "unsupported format '$fmt'" if $fmt ne 'raw'; + + die "illegal name '$name' - sould be 'vm-$vmid-*'\n" + if $name && $name !~ m/^vm-$vmid-/; + + $name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name; + + $class->zfs_create_zvol($scfg, $name, $size); + + return $name; +} + sub zfs_get_pool_stats { my ($class, $scfg) = @_; diff --git a/PVE/Storage/ZFSPlugin.pm b/PVE/Storage/ZFSPlugin.pm index 15cd66e..7e21a6d 100644 --- a/PVE/Storage/ZFSPlugin.pm +++ b/PVE/Storage/ZFSPlugin.pm @@ -285,19 +285,13 @@ sub clone_image { sub alloc_image { my ($class, $storeid, $scfg, $vmid, $fmt, $name, $size) = @_; + + my $volname = $class->SUPER::alloc_image($storeid, $scfg, $vmid, $fmt, $name, $size); + + my $guid = $class->zfs_create_lu($scfg, $volname); + $class->zfs_add_lun_mapping_entry($scfg, $volname, $guid); - die "unsupported format '$fmt'" if $fmt ne 'raw'; - - die "illegal name '$name' - sould be 'vm-$vmid-*'\n" - if $name && $name !~ m/^vm-$vmid-/; - - $name = $class->zfs_find_free_diskname($storeid, $scfg, $vmid) if !$name; - - $class->zfs_create_zvol($scfg, $name, $size); - my $guid = $class->zfs_create_lu($scfg, $name); - $class->zfs_add_lun_mapping_entry($scfg, $name, $guid); - - return $name; + return $volname; } sub free_image {