Fix 0-named groups. Patch by Alexey Obitotskiy, originally identified by Marcin Haba.

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4639 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Mark Buechler
2012-12-05 15:14:30 +00:00
parent 0bf88c8f96
commit e75a90ef5e
2 changed files with 21 additions and 20 deletions

View File

@@ -663,7 +663,7 @@ sub luns {
my $_path;
if ($group) {
if (defined($group)) {
if ($self->groupExists($driver, $target, $group) != TRUE) {
$self->{'err_string'} = "initiators(): Group '$group' does not exist";
return undef;
@@ -1459,7 +1459,7 @@ sub lunExists {
return SCST_C_TGT_EXISTS if (!$rc);
return $rc if ($rc > 1);
if ($group) {
if (defined($group)) {
my $rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -2165,7 +2165,7 @@ sub addLun {
return SCST_C_LUN_BAD_ATTRIBUTES if ($rc == TRUE);
return $rc if ($rc > 1);
if ($group) {
if (defined($group)) {
$rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -2195,7 +2195,7 @@ sub addLun {
my ($path, $cmd);
if (new_sysfs_interface()) {
$path = make_path(SCST_ROOT_DIR(), SCST_MGMT_IO);
if ($group) {
if (defined($group)) {
$cmd = "in " .
make_path(IN_SCST_TARGETS, $driver, $target,
SCST_GROUPS, $group, SCST_LUNS) . " ";
@@ -2204,7 +2204,7 @@ sub addLun {
$target, SCST_LUNS) . " ";
}
} else {
if ($group) {
if (defined($group)) {
$path = make_path(SCST_TARGETS_DIR(), $driver, $target,
SCST_GROUPS, $group, SCST_LUNS,
SCST_MGMT_IO);
@@ -2213,6 +2213,7 @@ sub addLun {
SCST_LUNS, SCST_MGMT_IO);
}
}
$cmd .= "add $device $lun $o_string";
my $io = new IO::File $path, O_WRONLY;
@@ -2251,7 +2252,7 @@ sub removeLun {
return SCST_C_TGT_NO_TARGET if (!$rc);
return $rc if ($rc > 1);
if ($group) {
if (defined($group)) {
$rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -2272,7 +2273,7 @@ sub removeLun {
my ($path, $cmd);
if (new_sysfs_interface()) {
$path = make_path(SCST_ROOT_DIR(), SCST_MGMT_IO);
if ($group) {
if (defined($group)) {
$cmd = "in " . make_path(IN_SCST_TARGETS, $driver,
$target, SCST_GROUPS, $group,
SCST_LUNS) . " ";
@@ -2281,7 +2282,7 @@ sub removeLun {
$target, SCST_LUNS) . " ";
}
} else {
if ($group) {
if (defined($group)) {
$path = make_path(SCST_TARGETS_DIR(), $driver, $target,
SCST_GROUPS, $group, SCST_LUNS,
SCST_MGMT_IO);
@@ -2331,7 +2332,7 @@ sub replaceLun {
return SCST_C_TGT_NO_TARGET if (!$rc);
return $rc if ($rc > 1);
if ($group) {
if (defined($group)) {
$rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -2368,7 +2369,7 @@ sub replaceLun {
my ($path, $cmd);
if (new_sysfs_interface()) {
$path = make_path(SCST_ROOT_DIR(), SCST_MGMT_IO);
if ($group) {
if (defined($group)) {
$cmd = "in " . make_path(IN_SCST_TARGETS, $driver,
$target, SCST_GROUPS,
$group, SCST_LUNS) . " ";
@@ -2377,7 +2378,7 @@ sub replaceLun {
$target, SCST_LUNS) . " ";
}
} else {
if ($group) {
if (defined($group)) {
$path = make_path(SCST_TARGETS_DIR(), $driver, $target,
SCST_GROUPS, $group, SCST_LUNS,
SCST_MGMT_IO);
@@ -2422,7 +2423,7 @@ sub clearLuns {
return SCST_C_TGT_NO_TARGET if (!$rc);
return $rc if ($rc > 1);
if ($group) {
if (defined($group)) {
$rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -2435,7 +2436,7 @@ sub clearLuns {
my ($path, $cmd);
if (new_sysfs_interface()) {
$path = make_path(SCST_ROOT_DIR(), SCST_MGMT_IO);
if ($group) {
if (defined($group)) {
$cmd = "in " .
make_path(IN_SCST_TARGETS, $driver, $target,
SCST_GROUPS, $group, SCST_LUNS) . " ";
@@ -2444,7 +2445,7 @@ sub clearLuns {
$target, SCST_LUNS) . " ";
}
} else {
if ($group) {
if (defined($group)) {
$path = make_path(SCST_TARGETS_DIR(), $driver, $target,
SCST_GROUPS, $group, SCST_LUNS,
SCST_MGMT_IO);
@@ -3114,7 +3115,7 @@ sub lunAttributes {
my ($_path, $luncrattr);
if ($group) {
if (defined($group)) {
if ($self->groupExists($driver, $target, $group) != TRUE) {
$self->{'err_string'} = "lunAttributes(): Group '$group' does not exist";
return undef;
@@ -3227,7 +3228,7 @@ sub setLunAttribute {
my $path;
if ($group) {
if (defined($group)) {
$rc = $self->groupExists($driver, $target, $group);
return SCST_C_GRP_NO_GROUP if (!$rc);
return $rc if ($rc > 1);
@@ -4500,7 +4501,7 @@ sub lunCreateAttributes {
my $_path;
if (new_sysfs_interface()) {
if ($group) {
if (defined($group)) {
if ($self->groupExists($driver, $target, $group) != TRUE) {
$self->{'err_string'} = "lunCreateAttributes(): Group '$group' ".
"does not exist";
@@ -4521,7 +4522,7 @@ sub lunCreateAttributes {
$attributes{$attribute} = '';
}
} else {
if ($group) {
if (defined($group)) {
if ($self->groupExists($driver, $target, $group) != TRUE) {
$self->{'err_string'} = "lunCreateAttributes(): Group '$group' ".
"does not exist";

View File

@@ -2542,7 +2542,7 @@ sub applyLunAssignments {
my $c_luns;
my $changes = 0;
if ($group) {
if (defined($group)) {
$c_luns = $CURRENT{'assign'}->{$driver}->{$target}->{'GROUP'}->{$group}->{'LUN'};
} else {
$c_luns = $CURRENT{'assign'}->{$driver}->{$target}->{'LUN'};
@@ -4794,7 +4794,7 @@ sub addLun {
my $attributes = shift;
my $group = shift;
if ($group) {
if (defined($group)) {
print "\t-> Adding device '$device' at LUN $lun to driver/target/group ".
"'$driver/$target/$group': ";
} else {