From 22be1b3f80645938974d99e98ae8b495d7425e09 Mon Sep 17 00:00:00 2001 From: Friedrich Weber Date: Mon, 20 Feb 2023 11:04:45 +0100 Subject: [PATCH] fix #4470: pct fstrim: ignore bind or read-only mountpoints 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 --- 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.39.2