12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // +build linux
- package util
- import (
- "os"
- "syscall"
- "github.com/docker/docker/pkg/mount"
- )
- func mountProc() error {
- if _, err := os.Stat("/proc/self/mountinfo"); os.IsNotExist(err) {
- if _, err := os.Stat("/proc"); os.IsNotExist(err) {
- if err = os.Mkdir("/proc", 0755); err != nil {
- return err
- }
- }
- if err := syscall.Mount("none", "/proc", "proc", 0, ""); err != nil {
- return err
- }
- }
- return nil
- }
- func Mount(device, directory, fsType, options string) error {
- if err := mountProc(); err != nil {
- return nil
- }
- if _, err := os.Stat(directory); os.IsNotExist(err) {
- err = os.MkdirAll(directory, 0755)
- if err != nil {
- return err
- }
- }
- return mount.Mount(device, directory, fsType, options)
- }
- func Unmount(target string) error {
- return mount.Unmount(target)
- }
|