if mountinfo not found, use mounts

This commit is contained in:
JHE 2019-02-05 21:23:46 +08:00
parent a45f6d8a03
commit d141349619
1 changed files with 10 additions and 8 deletions

View File

@ -226,12 +226,13 @@ func Partitions(all bool) ([]PartitionStat, error) {
func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) { func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, error) {
filename := common.HostProc("self/mountinfo") filename := common.HostProc("self/mountinfo")
lines, err := common.ReadLines(filename) lines, err := common.ReadLines(filename)
UseMounts := false
if err != nil { if err != nil {
UseMounts := true UseMounts = true
} }
//if kernel not support self/mountinfo //if kernel not support self/mountinfo
if UseMounts { if UseMounts == true {
filename := common.HostProc("self/mounts") filename := common.HostProc("self/mounts")
lines, err := common.ReadLines(filename) lines, err := common.ReadLines(filename)
if err != nil { if err != nil {
@ -252,7 +253,7 @@ func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, erro
// (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) // (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
// split the mountinfo line by the separator hyphen // split the mountinfo line by the separator hyphen
if UseMounts { if UseMounts == true {
fields := strings.Fields(line) fields := strings.Fields(line)
d := PartitionStat{ d := PartitionStat{
@ -284,12 +285,13 @@ func PartitionsWithContext(ctx context.Context, all bool) ([]PartitionStat, erro
} }
} }
if UseMounts { if all == false {
if all == false { if d.Device == "none" || !common.StringsHas(fs, d.Fstype) {
if d.Device == "none" || !common.StringsHas(fs, d.Fstype) { continue
continue
}
} }
}
if UseMounts == true {
// /dev/root is not the real device name // /dev/root is not the real device name
// so we get the real device name from its major/minor number // so we get the real device name from its major/minor number
if d.Device == "/dev/root" { if d.Device == "/dev/root" {