reject mixed drive situations with drives on root disks (#11057)

till now we used to match the inode number of the root
drive and the drive path minio would use, if they match
we knew that its a root disk.

this may not be true in all situations such as running
inside a container environment where the container might
be mounted from a different partition altogether, root
disk detection might fail.
This commit is contained in:
Harshavardhana
2020-12-09 00:27:02 -08:00
committed by GitHub
parent 54d243cd98
commit d8c1f93de6
4 changed files with 36 additions and 69 deletions

View File

@@ -30,3 +30,21 @@ 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 and number of free
// inodes are same, then its the same disk.
return di1.Used == di2.Used && di1.Free == di2.Free &&
di1.Ffree == di2.Ffree
}