|
@@ -81,17 +81,16 @@ func (c *defaultChecker) IsMounted(path string) bool {
|
|
|
func Mounted(fsType FsMagic, mountPath string) (bool, error) {
|
|
|
|
|
|
cs := C.CString(filepath.Dir(mountPath))
|
|
|
+ defer C.free(unsafe.Pointer(cs))
|
|
|
buf := C.getstatfs(cs)
|
|
|
+ defer C.free(unsafe.Pointer(buf))
|
|
|
|
|
|
// on Solaris buf.f_basetype contains ['z', 'f', 's', 0 ... ]
|
|
|
if (buf.f_basetype[0] != 122) || (buf.f_basetype[1] != 102) || (buf.f_basetype[2] != 115) ||
|
|
|
(buf.f_basetype[3] != 0) {
|
|
|
logrus.Debugf("[zfs] no zfs dataset found for rootdir '%s'", mountPath)
|
|
|
- C.free(unsafe.Pointer(buf))
|
|
|
return false, ErrPrerequisites
|
|
|
}
|
|
|
|
|
|
- C.free(unsafe.Pointer(buf))
|
|
|
- C.free(unsafe.Pointer(cs))
|
|
|
return true, nil
|
|
|
}
|