【发布时间】:2013-10-31 02:06:05
【问题描述】:
我在看docker的源码,通过这样的测试条件,它会检查一个目录是否已经挂载,它的原理是什么?
func Mounted(mountpoint string) (bool, error) {
mntpoint, err := os.Stat(mountpoint)
if err != nil {
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
parent, err := os.Stat(filepath.Join(mountpoint, ".."))
if err != nil {
return false, err
}
mntpointSt := mntpoint.Sys().(*syscall.Stat_t)
parentSt := parent.Sys().(*syscall.Stat_t)
return mntpointSt.Dev != parentSt.Dev, nil
}
【问题讨论】:
标签: linux linux-kernel go mount