48536e29e5
If a device has been scheduled for deferred deactivation and container is started again and we need to activate device again, we need to cancel the deferred deactivation which is already scheduled on the device. Create a method for the same. Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
34 lines
751 B
Go
34 lines
751 B
Go
// +build linux
|
|
|
|
package devicemapper
|
|
|
|
import "C"
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// Due to the way cgo works this has to be in a separate file, as devmapper.go has
|
|
// definitions in the cgo block, which is incompatible with using "//export"
|
|
|
|
//export DevmapperLogCallback
|
|
func DevmapperLogCallback(level C.int, file *C.char, line C.int, dm_errno_or_class C.int, message *C.char) {
|
|
msg := C.GoString(message)
|
|
if level < 7 {
|
|
if strings.Contains(msg, "busy") {
|
|
dmSawBusy = true
|
|
}
|
|
|
|
if strings.Contains(msg, "File exists") {
|
|
dmSawExist = true
|
|
}
|
|
|
|
if strings.Contains(msg, "No such device or address") {
|
|
dmSawEnxio = true
|
|
}
|
|
}
|
|
|
|
if dmLogger != nil {
|
|
dmLogger.DMLog(int(level), C.GoString(file), int(line), int(dm_errno_or_class), msg)
|
|
}
|
|
}
|