On Fri Apr 11, 2025 at 5:08 PM CEST, Daniel Kral wrote: > Make the subroutine get_smart_data() die with the error message from > running the `smartctl` command before. This is in preparation for the > next patch, which makes that command fail in certain scenarios. > > Signed-off-by: Daniel Kral <d.k...@proxmox.com> > --- > src/PVE/Diskmanage.pm | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/PVE/Diskmanage.pm b/src/PVE/Diskmanage.pm > index 4272668..059d645 100644 > --- a/src/PVE/Diskmanage.pm > +++ b/src/PVE/Diskmanage.pm > @@ -150,8 +150,10 @@ sub get_smart_data { > }; > my $err = $@; > > + die "Error getting S.M.A.R.T. data: $err\n" if $err;
The above is *fine* IMO, but for future reference, I'd recommend something like this if $@ is only used in one place: die "Error getting S.M.A.R.T. data: $@\n" if $@; Also, another convenient pattern I've seen (and also been using lately) is the following---useful if you need to do a bit more than just die: if (my $err = $@) { # [...] } > + > # bit 0 and 1 mark a fatal error, other bits are for disk status -> > ignore (see man 8 smartctl) > - if ((defined($returncode) && ($returncode & 0b00000011)) || $err) { > + if ((defined($returncode) && ($returncode & 0b00000011))) { The inner parentheses here are redundant, now that `|| $err` is gone ;) But can IMO just be adapted in a tiny follow-up / when applying. > die "Error getting S.M.A.R.T. data: Exit code: $returncode\n"; > } > _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel