mount.go 590 B

1234567891011121314151617181920212223242526272829
  1. // +build linux,amd64
  2. package devmapper
  3. import (
  4. "os"
  5. "path/filepath"
  6. "syscall"
  7. )
  8. // FIXME: this is copy-pasted from the aufs driver.
  9. // It should be moved into the core.
  10. func Mounted(mountpoint string) (bool, error) {
  11. mntpoint, err := os.Stat(mountpoint)
  12. if err != nil {
  13. if os.IsNotExist(err) {
  14. return false, nil
  15. }
  16. return false, err
  17. }
  18. parent, err := os.Stat(filepath.Join(mountpoint, ".."))
  19. if err != nil {
  20. return false, err
  21. }
  22. mntpointSt := mntpoint.Sys().(*syscall.Stat_t)
  23. parentSt := parent.Sys().(*syscall.Stat_t)
  24. return mntpointSt.Dev != parentSt.Dev, nil
  25. }