github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/builder/builder-next/worker/gc_unix.go (about)

     1  //go:build !windows
     2  
     3  package worker
     4  
     5  import (
     6  	"syscall"
     7  )
     8  
     9  func detectDefaultGCCap(root string) int64 {
    10  	var st syscall.Statfs_t
    11  	if err := syscall.Statfs(root, &st); err != nil {
    12  		return defaultCap
    13  	}
    14  	diskSize := int64(st.Bsize) * int64(st.Blocks) //nolint unconvert
    15  	avail := diskSize / 10
    16  	return (avail/(1<<30) + 1) * 1e9 // round up
    17  }