From 08c878acd235fdc908b3a7a3c43dfc9fc5e9b2ef Mon Sep 17 00:00:00 2001
From: Guillaume Ballet <gballet@gmail.com>
Date: Mon, 15 Feb 2021 19:37:09 +0100
Subject: [PATCH] cmd/utils: add workaround for FreeBSD statfs quirk (#22310)

Make geth build on FreeBSD, fixes #22309.
---
 cmd/utils/diskusage.go | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/cmd/utils/diskusage.go b/cmd/utils/diskusage.go
index a822118a3..da696de6b 100644
--- a/cmd/utils/diskusage.go
+++ b/cmd/utils/diskusage.go
@@ -31,5 +31,12 @@ func getFreeDiskSpace(path string) (uint64, error) {
 	}
 
 	// Available blocks * size per block = available space in bytes
-	return stat.Bavail * uint64(stat.Bsize), nil
+	var bavail = stat.Bavail
+	if stat.Bavail < 0 {
+		// FreeBSD can have a negative number of blocks available
+		// because of the grace limit.
+		bavail = 0
+	}
+	//nolint:unconvert
+	return uint64(bavail) * uint64(stat.Bsize), nil
 }
-- 
GitLab