vendor: github.com/moby/sys/mountinfo v0.7.1
full diff: https://github.com/moby/sys/compare/mountinfo/v0.6.2...mountinfo/v0.7.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
87041b207f
commit
c4d2968183
4 changed files with 47 additions and 10 deletions
|
@ -67,7 +67,7 @@ require (
|
||||||
github.com/moby/pubsub v1.0.0
|
github.com/moby/pubsub v1.0.0
|
||||||
github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee
|
github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee
|
||||||
github.com/moby/sys/mount v0.3.3
|
github.com/moby/sys/mount v0.3.3
|
||||||
github.com/moby/sys/mountinfo v0.6.2
|
github.com/moby/sys/mountinfo v0.7.1
|
||||||
github.com/moby/sys/sequential v0.5.0
|
github.com/moby/sys/sequential v0.5.0
|
||||||
github.com/moby/sys/signal v0.7.0
|
github.com/moby/sys/signal v0.7.0
|
||||||
github.com/moby/sys/symlink v0.2.0
|
github.com/moby/sys/symlink v0.2.0
|
||||||
|
|
|
@ -919,8 +919,9 @@ github.com/moby/sys/mount v0.3.3/go.mod h1:PBaEorSNTLG5t/+4EgukEQVlAvVEc6ZjTySwK
|
||||||
github.com/moby/sys/mountinfo v0.1.0/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
github.com/moby/sys/mountinfo v0.1.0/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
||||||
github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o=
|
||||||
github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
|
github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
|
||||||
github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
|
|
||||||
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||||
|
github.com/moby/sys/mountinfo v0.7.1 h1:/tTvQaSJRr2FshkhXiIpux6fQ2Zvc4j7tAhMTStAG2g=
|
||||||
|
github.com/moby/sys/mountinfo v0.7.1/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||||
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
||||||
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
||||||
github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI=
|
github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI=
|
||||||
|
|
50
vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go
generated
vendored
50
vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go
generated
vendored
|
@ -5,15 +5,19 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetMountsFromReader retrieves a list of mounts from the
|
// GetMountsFromReader retrieves a list of mounts from the
|
||||||
// reader provided, with an optional filter applied (use nil
|
// reader provided, with an optional filter applied (use nil
|
||||||
// for no filter). This can be useful in tests or benchmarks
|
// for no filter). This can be useful in tests or benchmarks
|
||||||
// that provide fake mountinfo data, or when a source other
|
// that provide fake mountinfo data, or when a source other
|
||||||
// than /proc/self/mountinfo needs to be read from.
|
// than /proc/thread-self/mountinfo needs to be read from.
|
||||||
//
|
//
|
||||||
// This function is Linux-specific.
|
// This function is Linux-specific.
|
||||||
func GetMountsFromReader(r io.Reader, filter FilterFunc) ([]*Info, error) {
|
func GetMountsFromReader(r io.Reader, filter FilterFunc) ([]*Info, error) {
|
||||||
|
@ -127,8 +131,40 @@ func GetMountsFromReader(r io.Reader, filter FilterFunc) ([]*Info, error) {
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseMountTable(filter FilterFunc) ([]*Info, error) {
|
var (
|
||||||
f, err := os.Open("/proc/self/mountinfo")
|
haveProcThreadSelf bool
|
||||||
|
haveProcThreadSelfOnce sync.Once
|
||||||
|
)
|
||||||
|
|
||||||
|
func parseMountTable(filter FilterFunc) (_ []*Info, err error) {
|
||||||
|
haveProcThreadSelfOnce.Do(func() {
|
||||||
|
_, err := os.Stat("/proc/thread-self/mountinfo")
|
||||||
|
haveProcThreadSelf = err == nil
|
||||||
|
})
|
||||||
|
|
||||||
|
// We need to lock ourselves to the current OS thread in order to make sure
|
||||||
|
// that the thread referenced by /proc/thread-self stays alive until we
|
||||||
|
// finish parsing the file.
|
||||||
|
runtime.LockOSThread()
|
||||||
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
|
var f *os.File
|
||||||
|
if haveProcThreadSelf {
|
||||||
|
f, err = os.Open("/proc/thread-self/mountinfo")
|
||||||
|
} else {
|
||||||
|
// On pre-3.17 kernels (such as CentOS 7), we don't have
|
||||||
|
// /proc/thread-self/ so we need to manually construct
|
||||||
|
// /proc/self/task/<tid>/ as a fallback.
|
||||||
|
f, err = os.Open("/proc/self/task/" + strconv.Itoa(unix.Gettid()) + "/mountinfo")
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
// If /proc/self/task/... failed, it means that our active pid
|
||||||
|
// namespace doesn't match the pid namespace of the /proc mount. In
|
||||||
|
// this case we just have to make do with /proc/self, since there
|
||||||
|
// is no other way of figuring out our tid in a parent pid
|
||||||
|
// namespace on pre-3.17 kernels.
|
||||||
|
f, err = os.Open("/proc/self/mountinfo")
|
||||||
|
}
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -158,10 +194,10 @@ func PidMountInfo(pid int) ([]*Info, error) {
|
||||||
// A few specific characters in mountinfo path entries (root and mountpoint)
|
// A few specific characters in mountinfo path entries (root and mountpoint)
|
||||||
// are escaped using a backslash followed by a character's ascii code in octal.
|
// are escaped using a backslash followed by a character's ascii code in octal.
|
||||||
//
|
//
|
||||||
// space -- as \040
|
// space -- as \040
|
||||||
// tab (aka \t) -- as \011
|
// tab (aka \t) -- as \011
|
||||||
// newline (aka \n) -- as \012
|
// newline (aka \n) -- as \012
|
||||||
// backslash (aka \\) -- as \134
|
// backslash (aka \\) -- as \134
|
||||||
//
|
//
|
||||||
// This function converts path from mountinfo back, i.e. it unescapes the above sequences.
|
// This function converts path from mountinfo back, i.e. it unescapes the above sequences.
|
||||||
func unescape(path string) (string, error) {
|
func unescape(path string) (string, error) {
|
||||||
|
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
|
@ -919,7 +919,7 @@ github.com/moby/swarmkit/v2/xnet
|
||||||
# github.com/moby/sys/mount v0.3.3
|
# github.com/moby/sys/mount v0.3.3
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
github.com/moby/sys/mount
|
github.com/moby/sys/mount
|
||||||
# github.com/moby/sys/mountinfo v0.6.2
|
# github.com/moby/sys/mountinfo v0.7.1
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
github.com/moby/sys/mountinfo
|
github.com/moby/sys/mountinfo
|
||||||
# github.com/moby/sys/sequential v0.5.0
|
# github.com/moby/sys/sequential v0.5.0
|
||||||
|
|
Loading…
Reference in a new issue