TRIM: code optimization

This commit is contained in:
bergware
2023-03-18 22:01:21 +01:00
parent 97f49a1873
commit 7d00a374c9
+18 -18
View File
@@ -31,24 +31,6 @@ $_SERVER['REQUEST_URI'] = 'settings';
$login_locale = _var($display,'locale');
require_once "$docroot/webGui/include/Translations.php";
function zfs_trim($write) {
exec("zfs list -Ho name,mounted",$zfs_pools);
foreach ($zfs_pools as $pool) {
[$name,$mounted] = preg_split('/\s+/',$pool);
if ($mounted != 'yes') continue;
if ($write) write("/mnt/$name: ... <i class='fa fa-spin fa-circle-o-notch'></i>\r");
exec("zpool trim -w $name 2>/dev/null");
if ($write) write(zfs_info($name)."\r","\n"); else echo zfs_info($name)."\n";
}
}
function zfs_info($name) {
$trim = preg_replace('/(.$)/',' $1',exec("zfs list -Ho used $name"))."iB";
$bytes = exec("zfs list -Hpo used $name");
exec("zpool list -vHP $name|grep -Po '^\s+\K/\S+'",$devs);
return "/mnt/$name: $trim ($bytes bytes) trimmed on ".implode(', ',$devs);
}
function write(...$messages){
$com = curl_init();
curl_setopt_array($com,[
@@ -64,6 +46,24 @@ function write(...$messages){
curl_close($com);
}
function zfs_info($name) {
$trim = preg_replace('/(.$)/',' $1',exec("zfs list -Ho used $name"))."iB";
$bytes = exec("zfs list -Hpo used $name");
exec("zpool list -vHP $name|grep -Po '^\s+\K/\S+'",$devs);
return "/mnt/$name: $trim ($bytes bytes) trimmed on ".implode(', ',$devs);
}
function zfs_trim($write) {
exec("zfs list -Ho name,mounted",$pools);
foreach ($pools as $pool) {
[$name,$mounted] = preg_split('/\s+/',$pool);
if ($mounted != 'yes') continue;
if ($write) write("/mnt/$name: ... <i class='fa fa-spin fa-circle-o-notch'></i>\r");
exec("zpool trim -w $name 2>/dev/null");
if ($write) write(zfs_info($name)."\r","\n"); else echo zfs_info($name)."\n";
}
}
write(_("TRIM operation started").".\n","\n","\n");
// trim btrfs