From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id DFC7A1FF164 for ; Fri, 8 Nov 2024 11:24:33 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C44BEB3E1; Fri, 8 Nov 2024 11:24:32 +0100 (CET) Date: Fri, 8 Nov 2024 11:24:29 +0100 From: Stoiko Ivanov To: Dominik Csapak Message-ID: <20241108112429.27b7be35@rosa.proxmox.com> In-Reply-To: <20241108093300.1023657-2-d.csapak@proxmox.com> References: <20241108093300.1023657-1-d.csapak@proxmox.com> <20241108093300.1023657-2-d.csapak@proxmox.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.071 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [sysfstools.pm] Subject: Re: [pve-devel] [PATCH common v2 1/2] sysfstools: file_write: extend with logging and ignore list X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Cc: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" 2 cosmetic nits inline: On Fri, 8 Nov 2024 10:32:58 +0100 Dominik Csapak wrote: > the actual error and path is useful to know when trying to debug or > figure out what did not work, so warn here if there was an error. > > Also takes now an optional error list that can be ignored. If > encountering such an error, returns success instead of failure. suggestion: Now also takes an optional list of errors that can be ignored. > > Signed-off-by: Dominik Csapak > --- > src/PVE/SysFSTools.pm | 22 ++++++++++++++++++---- > 1 file changed, 18 insertions(+), 4 deletions(-) > > diff --git a/src/PVE/SysFSTools.pm b/src/PVE/SysFSTools.pm > index 0bde6d7..156fee6 100644 > --- a/src/PVE/SysFSTools.pm > +++ b/src/PVE/SysFSTools.pm > @@ -211,17 +211,31 @@ sub check_iommu_support{ > return PVE::Tools::dir_glob_regex('/sys/class/iommu/', "[^\.].*"); > } > > +# writes $buf into $filename > +# returns success when encountering an error from the given $ignore_list, e.g. EEXIST I somehow read this as only condition when it returns success (also not sure if the comment is needed or this gets clear when looking through the code)? maybe: # writes $buf into $filename, returns false and warns on errors not listed in the optional $ignore_list ? > sub file_write { > - my ($filename, $buf) = @_; > + my ($filename, $buf, $ignore_list) = @_; if you do: $ignore_list //= []; here... > > my $fh = IO::File->new($filename, "w"); > return undef if !$fh; > > - my $res = defined(syswrite($fh, $buf)) ? 1 : 0; > - > + my $res = syswrite($fh, $buf); > $fh->close(); > > - return $res; > + if (defined($res)) { > + return 1; > + } elsif (my $err = $!) { > + if (defined($ignore_list)) { .. this nesting can be omitted. > + for my $to_ignore ($ignore_list->@*) { > + if ($err == $to_ignore) { > + return 1; > + } the inner if could be shorted a bit to: return 1 if ($err == $to_ignore); > + } > + } > + warn "error writing '$buf' to '$filename': $err\n"; > + } > + > + return 0; > } > > sub pci_device_info { _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel