mirror of
https://github.com/webmin/webmin.git
synced 2026-03-10 04:42:07 +00:00
Cache block_size for each filesystem
https://github.com/webmin/webmin/issues/2634
This commit is contained in:
@@ -508,25 +508,31 @@ returned by this function before display to users.
|
||||
=cut
|
||||
sub block_size
|
||||
{
|
||||
my ($dir, $forfs) = @_;
|
||||
$forfs ||= 0;
|
||||
return undef if (!$config{'block_mode'});
|
||||
return undef if (!defined("a_block_size) &&
|
||||
!defined(&fs_block_size));
|
||||
local @mounts = &mount::list_mounted();
|
||||
local ($mount) = grep { $_->[0] eq $_[0] } @mounts;
|
||||
if ($mount) {
|
||||
if ($_[1]) {
|
||||
return &fs_block_size(@$mount);
|
||||
}
|
||||
else {
|
||||
if (defined("a_block_size)) {
|
||||
return "a_block_size(@$mount);
|
||||
if (!exists($block_size_cache{$dir,$forfs})) {
|
||||
my @mounts = &mount::list_mounted();
|
||||
my ($mount) = grep { $_->[0] eq $dir } @mounts;
|
||||
my $rv = undef;
|
||||
if ($mount) {
|
||||
if ($forfs) {
|
||||
$rv = &fs_block_size(@$mount);
|
||||
}
|
||||
else {
|
||||
return &fs_block_size(@$mount);
|
||||
if (defined("a_block_size)) {
|
||||
$rv = "a_block_size(@$mount);
|
||||
}
|
||||
else {
|
||||
$rv = &fs_block_size(@$mount);
|
||||
}
|
||||
}
|
||||
}
|
||||
$block_size_cache{$dir,$forfs} = $rv;
|
||||
}
|
||||
return undef;
|
||||
return $block_size_cache{$dir,$forfs};
|
||||
}
|
||||
|
||||
=head2 nice_limit(amount, bsize, no-blocks)
|
||||
|
||||
Reference in New Issue
Block a user