[pve-devel] [PATCH] extend ZFSPoolPlugin::zfs_get_zvol_size with quota
Wolfgang Link
w.link at proxmox.com
Fri Aug 7 13:24:21 CEST 2015
This is necessary if we use Container because they use subvol.
subvol has no size but a quota.
if return is 0 there is no quota set.
---
PVE/Storage/ZFSPoolPlugin.pm | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/PVE/Storage/ZFSPoolPlugin.pm b/PVE/Storage/ZFSPoolPlugin.pm
index d3bb0fd..d7204b2 100644
--- a/PVE/Storage/ZFSPoolPlugin.pm
+++ b/PVE/Storage/ZFSPoolPlugin.pm
@@ -294,13 +294,21 @@ sub zfs_get_pool_stats {
sub zfs_get_zvol_size {
my ($class, $scfg, $zvol) = @_;
- my $text = $class->zfs_request($scfg, undef, 'get', '-Hp', 'volsize', "$scfg->{pool}/$zvol");
+ my $param;
- if ($text =~ /volsize\s(\d+)/) {
- return $1;
+ if ($zvol =~ m/^vm-\d\d\d+-disk-\d+$/) {
+ $param = "volsize";
+ } elsif ($zvol =~ m/^subvol-\d\d\d+-rootfs$/) {
+ $param = "refquota";
}
- die "Could not get zvol size";
+ my $text = $class->zfs_request($scfg, undef, 'get', '-Hp', "$param", "$scfg->{pool}/$zvol");
+
+ if ($text =~ /^$scfg->{pool}\/$zvol\s$param\s(\d+)/) {
+ return $1;
+ } else {
+ die "Could not get zvol size";
+ }
}
sub zfs_create_zvol {
--
2.1.4
More information about the pve-devel
mailing list