# Grows a RAID set to contain totaldisks active partitions
sub grow
{
+local ($raid, $newdisk) = @_;
if ($raid_mode eq "mdadm") {
# Call mdadm command to add
- $cmd="mdadm --grow $_[0]->{'value'} -n $_[1] 2>&1";
+ if ($newdisk =~ /^\d+$/) {
+ $cmd = "mdadm --grow $raid->{'value'} -n + $newdisk 2>&1";
+ }
+ else {
+ $cmd = "mdadm --grow $raid->{'value'} -n $newdisk 2>&1";
+ }
local $out = &backquote_logged(
$cmd);
&error(&text('emdadmgrow', "<tt>'$cmd' -> $out</tt>")) if ($?);
push(@rdisks, [ $d->{'value'}, $name ]);
$sparescnt++;
$newdisks++;
- push(@spares, [ "$newdisks", "+ $sparescnt" ]);
+ push(@spares, [ $newdisks, $sparescnt ]);
}
}
if ($sp) {
push(@grid, &ui_submit($text{'view_remove_det'}, "remove_det"),
$text{'view_remove_detdesc'});
}
- if ($sparescnt>0 && $lvl != 10) {
+ if ($sparescnt > 0 && $lvl != 10) {
@spares = sort { $a->[0] cmp $b->[0] } @spares;
push(@grid, &ui_submit($text{'view_grow'}, "grow")." ".
&ui_select("ndisk", undef, \@spares),