diff --git a/pkg/mount/deprecated.go b/pkg/mount/deprecated.go index f92bc1fca6..70406e11b0 100644 --- a/pkg/mount/deprecated.go +++ b/pkg/mount/deprecated.go @@ -54,20 +54,57 @@ var ( type ( // FilterFunc is a type. // Deprecated: use github.com/moby/sys/mountinfo instead. - FilterFunc = mountinfo.FilterFunc - // Info is a type. + FilterFunc = func(*Info) (skip, stop bool) + + // Info is a type // Deprecated: use github.com/moby/sys/mountinfo instead. - Info = mountinfo.Info // Info is deprecated + Info struct { + ID, Parent, Major, Minor int + Root, Mountpoint, Opts, Optional, Fstype, Source, VfsOpts string + } ) // Deprecated: use github.com/moby/sys/mountinfo instead. //nolint:golint var ( - Mounted = mountinfo.Mounted - GetMounts = mountinfo.GetMounts - + Mounted = mountinfo.Mounted PrefixFilter = mountinfo.PrefixFilter SingleEntryFilter = mountinfo.SingleEntryFilter ParentsFilter = mountinfo.ParentsFilter FstypeFilter = mountinfo.FSTypeFilter ) + +// GetMounts is a function. +// +// Deprecated: use github.com/moby/sys/mountinfo.GetMounts() instead. +//nolint:golint +func GetMounts(f FilterFunc) ([]*Info, error) { + fi := func(i *mountinfo.Info) (skip, stop bool) { + return f(toLegacyInfo(i)) + } + + mounts, err := mountinfo.GetMounts(fi) + if err != nil { + return nil, err + } + mi := make([]*Info, len(mounts)) + for i, m := range mounts { + mi[i] = toLegacyInfo(m) + } + return mi, nil +} + +func toLegacyInfo(m *mountinfo.Info) *Info { + return &Info{ + ID: m.ID, + Parent: m.Parent, + Major: m.Major, + Minor: m.Minor, + Root: m.Root, + Mountpoint: m.Mountpoint, + Opts: m.Options, + Fstype: m.FSType, + Source: m.Source, + VfsOpts: m.VFSOptions, + } +}