devmapper: create device nodes 'on create' instead of 'on resume'

Upstream-commit: 5ebaca7e55e006083e6e9c2782e4f8b421275579
Component: engine
This commit is contained in:
Alexander Larsson
2013-10-15 21:27:47 +00:00
committed by Solomon Hykes
parent 5b6d6020fa
commit 3dc4429624
+16
View File
@@ -175,6 +175,11 @@ const (
DeviceSetGeometry
)
const (
AddNodeOnResume AddNodeType = iota
AddNodeOnCreate
)
var (
ErrTaskRun = errors.New("dm_task_run failed")
ErrTaskSetName = errors.New("dm_task_set_name failed")
@@ -209,6 +214,7 @@ type (
TargetCount int32
}
TaskType int
AddNodeType int
)
func (t *Task) destroy() {
@@ -274,6 +280,13 @@ func (t *Task) SetCookie(cookie *uint32, flags uint16) error {
return nil
}
func (t *Task) SetAddNode(add_node AddNodeType) error {
if res := C.dm_task_set_add_node(t.unmanaged, C.dm_add_node_t (add_node)); res != 1 {
return ErrTaskSetAddNode
}
return nil
}
func (t *Task) SetRo() error {
if res := C.dm_task_set_ro(t.unmanaged); res != 1 {
return ErrTaskSetRO
@@ -614,6 +627,9 @@ func activateDevice(poolName string, name string, deviceId int, size uint64) err
if err := task.AddTarget(0, size/512, "thin", params); err != nil {
return fmt.Errorf("Can't add target")
}
if err := task.SetAddNode(AddNodeOnCreate); err != nil {
return fmt.Errorf("Can't add node")
}
var cookie uint32 = 0
if err := task.SetCookie(&cookie, 0); err != nil {