On 9/25/19 10:28 AM, Daniel Berteaud wrote: > So it won't clash with another backstore in another pool > > Signed-off-by: Daniel Berteaud <dan...@firewall-services.com> > --- > PVE/Storage/LunCmd/LIO.pm | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+)
not tested but looks good to me. > > diff --git a/PVE/Storage/LunCmd/LIO.pm b/PVE/Storage/LunCmd/LIO.pm > index 5d7a21d..80133d4 100644 > --- a/PVE/Storage/LunCmd/LIO.pm > +++ b/PVE/Storage/LunCmd/LIO.pm > @@ -158,6 +158,14 @@ my $parser = sub { > } > }; > > +# Get prefix for backstores > +my $get_backstore_prefix = sub { > + my ($scfg) = @_; > + my $pool = $scfg->{pool}; > + $pool =~ s/\//-/g; > + return $pool . '-'; > +}; > + > # removes the given lu_name from the local list of luns > my $free_lu_name = sub { > my ($scfg, $lu_name) = @_; > @@ -194,6 +202,15 @@ my $extract_volname = sub { > my $base = get_base; > if ($lunpath =~ /^$base\/$scfg->{pool}\/([\w\-]+)$/) { > $volname = $1; > + my $prefix = $get_backstore_prefix->($scfg); > + foreach my $lun > (@{$SETTINGS->{$scfg->{portal}.$scfg->{target}}->{luns}}) { > + # If we have a lun with the pool prefix matching this vol, then > return this one > + # like pool-pve-vm-100-disk-0 > + # Else, just fallback to the old name scheme which is vm-100-disk-0 > + if ($lun->{storage_object} =~ /^$BACKSTORE\/($prefix$volname)$/) { > + return $1; > + } > + } > } > > return $volname; > @@ -245,6 +262,9 @@ my $create_lun = sub { > > my $device = $params[0]; > my $volname = $extract_volname->($scfg, $device); > + # Here we create a new device, so we didn't get the volname prefixed > with the pool name > + # as extract_volname couldn't find a matching vol yet > + $volname = $get_backstore_prefix->($scfg) . $volname; > my $tpg = $scfg->{lio_tpg} || die "Target Portal Group not set, > aborting!\n"; > > # step 1: create backstore for device > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel