From b151a591824f056807da9e98f51e50d7d3e95c12 Mon Sep 17 00:00:00 2001 From: Mark Buechler Date: Tue, 15 Jun 2010 19:22:31 +0000 Subject: [PATCH] - Handle removing virtual targets on -clear_config. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1776 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scstadmin/scst-0.9.00/lib/SCST/SCST.pm | 6 +++--- scstadmin/scstadmin.sysfs | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) 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 {