diff --git a/scstadmin/scst-0.9.00/lib/SCST/SCST.pm b/scstadmin/scst-0.9.00/lib/SCST/SCST.pm index 8e36ae2e3..00b64da4d 100644 --- a/scstadmin/scst-0.9.00/lib/SCST/SCST.pm +++ b/scstadmin/scst-0.9.00/lib/SCST/SCST.pm @@ -183,13 +183,13 @@ my %VERBOSE_ERROR = ( use vars qw(@ISA @EXPORT $VERSION); -my $TGT_TYPE_HARDWARE = 1; -my $TGT_TYPE_VIRTUAL = 2; - use vars qw($TGT_TYPE_HARDWARE $TGT_TYPE_VIRTUAL); $VERSION = 0.9.00; +$TGT_TYPE_HARDWARE = 1; +$TGT_TYPE_VIRTUAL = 2; + my $_SCST_MIN_MAJOR_ = 2; my $_SCST_MIN_MINOR_ = 0; my $_SCST_MIN_RELEASE_ = 0; diff --git a/scstadmin/scstadmin.sysfs b/scstadmin/scstadmin.sysfs index d34d4d4a6..1e16169c4 100755 --- a/scstadmin/scstadmin.sysfs +++ b/scstadmin/scstadmin.sysfs @@ -1573,6 +1573,9 @@ sub clearConfiguration { clearLuns($driver, $target); removeTargetDynamicAttributes($driver, $target); + if ($SCST->targetType($driver, $target) == $SCST::SCST::TGT_TYPE_VIRTUAL) { + removeVirtualTarget($driver, $target); + } } removeDriverDynamicAttributes($driver); @@ -1589,9 +1592,21 @@ sub clearConfiguration { } } + # Todo - check return code # TODO: should we disable all target drivers as well? } +sub removeVirtualTarget { + my $driver = shift; + my $target = shift; + + print "-> Removing virtual target '$target' from driver '$driver': "; + my $rc = $SCST->removeVirtualTarget($driver, $target); + print "done.\n"; + + # Todo - check return code +} + #################################################################### sub listHandlers {