[pve-devel] [PATCH container] fix #4470: pct fstrim: ignore bind or read-only mountpoints
Friedrich Weber
f.weber at proxmox.com
Mon Feb 20 11:04:45 CET 2023
Currently, `pct fstrim` will run `fstrim` on all mountpoints
of the container, including bind and read-only mountpoints.
However, trimming a bind mountpoint might trim a host
filesystem, which users may not expect. Also, trimming can
be considered a write operation, which users may not expect
to be carried out on a read-only mountpoint.
Hence, exclude bind mointpoints and read-only mountpoints
from trimming.
Signed-off-by: Friedrich Weber <f.weber at proxmox.com>
---
src/PVE/CLI/pct.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/PVE/CLI/pct.pm b/src/PVE/CLI/pct.pm
index 3ade2ba..d559d00 100755
--- a/src/PVE/CLI/pct.pm
+++ b/src/PVE/CLI/pct.pm
@@ -763,7 +763,7 @@ __PACKAGE__->register_method ({
name => 'fstrim',
path => 'fstrim',
method => 'POST',
- description => "Run fstrim on a chosen CT and its mountpoints.",
+ description => "Run fstrim on a chosen CT and its mountpoints, except bind or read-only mountpoints.",
parameters => {
additionalProperties => 0,
properties => {
@@ -791,6 +791,7 @@ __PACKAGE__->register_method ({
PVE::LXC::Config->foreach_volume($conf, sub {
my ($name, $mp) = @_;
$path = $mp->{mp};
+ return if $mp->{type} eq 'bind' || $mp->{ro};
return if $param->{'ignore-mountpoints'} && $name =~ /^mp\d+/;
my $cmd = ["fstrim", "-v", "$rootdir$path"];
PVE::Tools::run_command($cmd, noerr => 1);
--
2.30.2
More information about the pve-devel
mailing list