Fix raid growing
authorJamie Cameron <jcameron@webmin.com>
Sun, 11 Apr 2010 00:02:37 +0000 (17:02 -0700)
committerJamie Cameron <jcameron@webmin.com>
Sun, 11 Apr 2010 00:02:37 +0000 (17:02 -0700)
raid/raid-lib.pl
raid/view_raid.cgi

index 947a2d1..188d063 100755 (executable)
@@ -440,9 +440,15 @@ if ($raid_mode eq "mdadm") {
 # 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 ($?);
index 1517862..a963d63 100755 (executable)
@@ -116,7 +116,7 @@ foreach $d (@devs) {
                push(@rdisks, [ $d->{'value'}, $name ]);
                $sparescnt++;
                $newdisks++;
-               push(@spares, [ "$newdisks", "+ $sparescnt" ]);
+               push(@spares, [ $newdisks, $sparescnt ]);
                }
        }
 if ($sp) {
@@ -157,7 +157,7 @@ if ($raid_mode eq "mdadm") {
                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),