mirror of https://github.com/schoebel/mars
marsadm: allow only multiples of 4k as size arguments
This commit is contained in:
parent
c411a6f243
commit
b0c09061e9
|
@ -385,13 +385,12 @@ sub check_splitbrain {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub get_size {
|
sub get_size {
|
||||||
my $arg = shift;
|
my $arg = shift || "";
|
||||||
if (!$arg =~ m/^[0-9.]+[kmgtp]?$/i) {
|
if (!($arg =~ m/^([0-9]+(?:\.[0-9]*)?)([kmgtp]?)$/i)) {
|
||||||
ldie "size argument '$arg' must be a number, optionally followed by suffix k or m or g or t or p\n";
|
ldie "size argument '$arg' must be a number, optionally followed by suffix k or m or g or t or p\n";
|
||||||
}
|
}
|
||||||
my $mod = $arg;
|
my $mod = $2 || "";
|
||||||
$arg =~ s/[^0-9]+$//;
|
$arg = $1;
|
||||||
$mod =~ s/^[0-9]+//;
|
|
||||||
$_ = $mod;
|
$_ = $mod;
|
||||||
SWITCH: {
|
SWITCH: {
|
||||||
/k/i and $arg *= 1024, last SWITCH;
|
/k/i and $arg *= 1024, last SWITCH;
|
||||||
|
@ -400,6 +399,7 @@ sub get_size {
|
||||||
/t/i and $arg *= 1024 * 1024 * 1024 * 1024, last SWITCH;
|
/t/i and $arg *= 1024 * 1024 * 1024 * 1024, last SWITCH;
|
||||||
/p/i and $arg *= 1024 * 1024 * 1024 * 1024 * 1024, last SWITCH;
|
/p/i and $arg *= 1024 * 1024 * 1024 * 1024 * 1024, last SWITCH;
|
||||||
}
|
}
|
||||||
|
ldie "size '$arg' is not a multiple of 4k\n" if ($arg % 4096) != 0;
|
||||||
return $arg;
|
return $arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue