mirror of
https://github.com/minio/minio.git
synced 2025-11-26 04:26:12 -05:00
fix: for containers use root-disk detection cleverly (#11593)
root-disk implemented currently had issues where root disk partitions getting modified might race and provide incorrect results, to avoid this lets rely again back on DeviceID and match it instead. In-case of containers `/data` is one such extra entity that needs to be verified for root disk, due to how 'overlay' filesystem works and the 'overlay' presents a completely different 'device' id - using `/data` as another entity for fallback helps because our containers describe 'VOLUME' parameter that allows containers to automatically have a virtual `/data` that points to the container root path this can either be at `/` or `/var/lib/` (on different partition)
This commit is contained in:
@@ -30,21 +30,3 @@ type Info struct {
|
||||
Ffree uint64
|
||||
FSType string
|
||||
}
|
||||
|
||||
// SameDisk reports whether di1 and di2 describe the same disk.
|
||||
func SameDisk(di1, di2 Info) bool {
|
||||
if di1.Total != di2.Total {
|
||||
// disk total size different
|
||||
return false
|
||||
}
|
||||
|
||||
if di1.Files != di2.Files {
|
||||
// disk total inodes different
|
||||
return false
|
||||
}
|
||||
|
||||
// returns true only if Used, Free are same, then its the same disk.
|
||||
// we are deliberately not using free inodes as that is unreliable
|
||||
// due the fact that Ffree can vary even for temporary files
|
||||
return di1.Used == di2.Used && di1.Free == di2.Free
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user