aboutsummaryrefslogtreecommitdiff
path: root/vendor
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2018-07-25 17:51:31 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-07-25 23:53:16 +0000
commit9c806a4a3e746a1948a0c6ca0072e464b0cdfaac (patch)
tree30e3a946a12757feaf749cbb752fb724ff38af43 /vendor
parent73e39452828c2715dc5943de605f7cd488db24cb (diff)
downloadpodman-9c806a4a3e746a1948a0c6ca0072e464b0cdfaac.tar.gz
podman-9c806a4a3e746a1948a0c6ca0072e464b0cdfaac.tar.bz2
podman-9c806a4a3e746a1948a0c6ca0072e464b0cdfaac.zip
Vendor latest container/storage to fix overlay mountopt
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #1160 Approved by: mheon
Diffstat (limited to 'vendor')
-rw-r--r--vendor/github.com/containers/storage/drivers/overlay/overlay.go15
-rw-r--r--vendor/github.com/containers/storage/pkg/mount/flags.go6
-rw-r--r--vendor/github.com/containers/storage/pkg/mount/mount.go4
3 files changed, 13 insertions, 12 deletions
diff --git a/vendor/github.com/containers/storage/drivers/overlay/overlay.go b/vendor/github.com/containers/storage/drivers/overlay/overlay.go
index d2f7c373a..c59544aab 100644
--- a/vendor/github.com/containers/storage/drivers/overlay/overlay.go
+++ b/vendor/github.com/containers/storage/drivers/overlay/overlay.go
@@ -706,8 +706,11 @@ func (d *Driver) Get(id, mountLabel string) (_ string, retErr error) {
workDir := path.Join(dir, "work")
opts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", strings.Join(absLowers, ":"), diffDir, workDir)
+ if d.options.mountOptions != "" {
+ opts = fmt.Sprintf("%s,%s", d.options.mountOptions, opts)
+ }
mountData := label.FormatMountLabel(opts, mountLabel)
- mount := unix.Mount
+ mountFunc := unix.Mount
mountTarget := mergedDir
pageSize := unix.Getpagesize()
@@ -719,28 +722,26 @@ func (d *Driver) Get(id, mountLabel string) (_ string, retErr error) {
if len(mountData) > pageSize || d.options.mountProgram != "" {
//FIXME: We need to figure out to get this to work with additional stores
opts = fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", strings.Join(relLowers, ":"), path.Join(id, "diff"), path.Join(id, "work"))
- if d.options.mountOptions != "" {
- opts = fmt.Sprintf("%s,%s", d.options.mountOptions, opts)
- }
mountData = label.FormatMountLabel(opts, mountLabel)
if len(mountData) > pageSize {
return "", fmt.Errorf("cannot mount layer, mount label too large %d", len(mountData))
}
if d.options.mountProgram != "" {
- mount = func(source string, target string, mType string, flags uintptr, label string) error {
+ mountFunc = func(source string, target string, mType string, flags uintptr, label string) error {
mountProgram := exec.Command(d.options.mountProgram, "-o", label, target)
mountProgram.Dir = d.home
return mountProgram.Run()
}
} else {
- mount = func(source string, target string, mType string, flags uintptr, label string) error {
+ mountFunc = func(source string, target string, mType string, flags uintptr, label string) error {
return mountFrom(d.home, source, target, mType, flags, label)
}
}
mountTarget = path.Join(id, "merged")
}
- if err := mount("overlay", mountTarget, "overlay", 0, mountData); err != nil {
+ flags, data := mount.ParseOptions(mountData)
+ if err := mountFunc("overlay", mountTarget, "overlay", uintptr(flags), data); err != nil {
return "", fmt.Errorf("error creating overlay mount to %s: %v", mountTarget, err)
}
diff --git a/vendor/github.com/containers/storage/pkg/mount/flags.go b/vendor/github.com/containers/storage/pkg/mount/flags.go
index 607dbed43..07a0f4847 100644
--- a/vendor/github.com/containers/storage/pkg/mount/flags.go
+++ b/vendor/github.com/containers/storage/pkg/mount/flags.go
@@ -111,9 +111,9 @@ func MergeTmpfsOptions(options []string) ([]string, error) {
return newOptions, nil
}
-// Parse fstab type mount options into mount() flags
+// ParseOptions parses fstab type mount options into mount() flags
// and device specific data
-func parseOptions(options string) (int, string) {
+func ParseOptions(options string) (int, string) {
var (
flag int
data []string
@@ -138,7 +138,7 @@ func parseOptions(options string) (int, string) {
// ParseTmpfsOptions parse fstab type mount options into flags and data
func ParseTmpfsOptions(options string) (int, string, error) {
- flags, data := parseOptions(options)
+ flags, data := ParseOptions(options)
for _, o := range strings.Split(data, ",") {
opt := strings.SplitN(o, "=", 2)
if !validFlags[opt[0]] {
diff --git a/vendor/github.com/containers/storage/pkg/mount/mount.go b/vendor/github.com/containers/storage/pkg/mount/mount.go
index d3caa16bd..7197448da 100644
--- a/vendor/github.com/containers/storage/pkg/mount/mount.go
+++ b/vendor/github.com/containers/storage/pkg/mount/mount.go
@@ -39,7 +39,7 @@ func Mounted(mountpoint string) (bool, error) {
// specified like the mount or fstab unix commands: "opt1=val1,opt2=val2". See
// flags.go for supported option flags.
func Mount(device, target, mType, options string) error {
- flag, _ := parseOptions(options)
+ flag, _ := ParseOptions(options)
if flag&REMOUNT != REMOUNT {
if mounted, err := Mounted(target); err != nil || mounted {
return err
@@ -53,7 +53,7 @@ func Mount(device, target, mType, options string) error {
// specified like the mount or fstab unix commands: "opt1=val1,opt2=val2". See
// flags.go for supported option flags.
func ForceMount(device, target, mType, options string) error {
- flag, data := parseOptions(options)
+ flag, data := ParseOptions(options)
return mount(device, target, mType, uintptr(flag), data)
}