|
@@ -10,6 +10,7 @@ import (
|
|
"syscall"
|
|
"syscall"
|
|
|
|
|
|
"github.com/containerd/continuity/fs"
|
|
"github.com/containerd/continuity/fs"
|
|
|
|
+ "github.com/docker/docker/pkg/mount"
|
|
"github.com/docker/docker/pkg/system"
|
|
"github.com/docker/docker/pkg/system"
|
|
"github.com/pkg/errors"
|
|
"github.com/pkg/errors"
|
|
"golang.org/x/sys/unix"
|
|
"golang.org/x/sys/unix"
|
|
@@ -152,9 +153,8 @@ func mknodChar0Overlay(cleansedOriginalPath string) error {
|
|
return errors.Wrapf(err, "failed to create a dummy lower file %s", lowerDummy)
|
|
return errors.Wrapf(err, "failed to create a dummy lower file %s", lowerDummy)
|
|
}
|
|
}
|
|
mOpts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower, upper, work)
|
|
mOpts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower, upper, work)
|
|
- // docker/pkg/mount.Mount() requires procfs to be mounted. So we use syscall.Mount() directly instead.
|
|
|
|
- if err := syscall.Mount("overlay", merged, "overlay", uintptr(0), mOpts); err != nil {
|
|
|
|
- return errors.Wrapf(err, "failed to mount overlay (%s) on %s", mOpts, merged)
|
|
|
|
|
|
+ if err := mount.Mount("overlay", merged, "overlay", mOpts); err != nil {
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
mergedDummy := filepath.Join(merged, dummyBase)
|
|
mergedDummy := filepath.Join(merged, dummyBase)
|
|
if err := os.Remove(mergedDummy); err != nil {
|
|
if err := os.Remove(mergedDummy); err != nil {
|
|
@@ -237,9 +237,8 @@ func createDirWithOverlayOpaque(tmp string) (string, error) {
|
|
return "", errors.Wrapf(err, "failed to create a dummy lower directory %s", lowerDummy)
|
|
return "", errors.Wrapf(err, "failed to create a dummy lower directory %s", lowerDummy)
|
|
}
|
|
}
|
|
mOpts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower, upper, work)
|
|
mOpts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lower, upper, work)
|
|
- // docker/pkg/mount.Mount() requires procfs to be mounted. So we use syscall.Mount() directly instead.
|
|
|
|
- if err := syscall.Mount("overlay", merged, "overlay", uintptr(0), mOpts); err != nil {
|
|
|
|
- return "", errors.Wrapf(err, "failed to mount overlay (%s) on %s", mOpts, merged)
|
|
|
|
|
|
+ if err := mount.Mount("overlay", merged, "overlay", mOpts); err != nil {
|
|
|
|
+ return "", err
|
|
}
|
|
}
|
|
mergedDummy := filepath.Join(merged, dummyBase)
|
|
mergedDummy := filepath.Join(merged, dummyBase)
|
|
if err := os.Remove(mergedDummy); err != nil {
|
|
if err := os.Remove(mergedDummy); err != nil {
|