NFS needs brackets around ipv6 addresses. Also: nfs_is_mounted needs to quote the variables. This becomes apparent when ipv6 addresses are used as then the address would otherwise be treated as a character class, causing the check to always fail. --- PVE/Storage/NFSPlugin.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/PVE/Storage/NFSPlugin.pm b/PVE/Storage/NFSPlugin.pm index 79a7730..14aa4ed 100644 --- a/PVE/Storage/NFSPlugin.pm +++ b/PVE/Storage/NFSPlugin.pm @@ -3,6 +3,7 @@ package PVE::Storage::NFSPlugin; use strict; use warnings; use IO::File; +use Net::IP; use File::Path; use PVE::Tools qw(run_command); use PVE::Storage::Plugin; @@ -28,11 +29,12 @@ sub read_proc_mounts { sub nfs_is_mounted { my ($server, $export, $mountpoint, $mountdata) = @_; + $server = "[$server]" if Net::IP::ip_is_ipv6($server); my $source = "$server:$export"; $mountdata = read_proc_mounts() if !$mountdata; - if ($mountdata =~ m|^$source/?\s$mountpoint\snfs|m) { + if ($mountdata =~ m|^\Q$source\E/?\s\Q$mountpoint\E\snfs|m) { return $mountpoint; } @@ -42,6 +44,7 @@ sub nfs_is_mounted { sub nfs_mount { my ($server, $export, $mountpoint, $options) = @_; + $server = "[$server]" if Net::IP::ip_is_ipv6($server); my $source = "$server:$export"; my $cmd = ['/bin/mount', '-t', 'nfs', $source, $mountpoint]; -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel