pkg/devicemapper: cleanup removeDevice differences
Fixes failure on RemoveDevice when host is AUFS, and running devicemapper test docker-in-docker https://gist.github.com/tonistiigi/59559cbfb3f2df26b29c Signed-off-by: Vincent Batts <vbatts@redhat.com>
This commit is contained in:
parent
07198ca6eb
commit
7f1cdd81f0
1 changed files with 18 additions and 26 deletions
|
@ -62,7 +62,7 @@ var (
|
||||||
ErrSetDevDir = errors.New("dm_set_dev_dir failed")
|
ErrSetDevDir = errors.New("dm_set_dev_dir failed")
|
||||||
ErrGetLibraryVersion = errors.New("dm_get_library_version failed")
|
ErrGetLibraryVersion = errors.New("dm_get_library_version failed")
|
||||||
ErrCreateRemoveTask = errors.New("Can't create task of type DeviceRemove")
|
ErrCreateRemoveTask = errors.New("Can't create task of type DeviceRemove")
|
||||||
ErrRunRemoveDevice = errors.New("running removeDevice failed")
|
ErrRunRemoveDevice = errors.New("running RemoveDevice failed")
|
||||||
ErrInvalidAddNode = errors.New("Invalide AddNoce type")
|
ErrInvalidAddNode = errors.New("Invalide AddNoce type")
|
||||||
ErrGetLoopbackBackingFile = errors.New("Unable to get loopback backing file")
|
ErrGetLoopbackBackingFile = errors.New("Unable to get loopback backing file")
|
||||||
ErrLoopbackSetCapacity = errors.New("Unable set loopback capacity")
|
ErrLoopbackSetCapacity = errors.New("Unable set loopback capacity")
|
||||||
|
@ -296,18 +296,27 @@ func GetLibraryVersion() (string, error) {
|
||||||
|
|
||||||
// Useful helper for cleanup
|
// Useful helper for cleanup
|
||||||
func RemoveDevice(name string) error {
|
func RemoveDevice(name string) error {
|
||||||
// TODO(vbatts) just use the other removeDevice()
|
log.Debugf("[devmapper] RemoveDevice START")
|
||||||
task := TaskCreate(DeviceRemove)
|
defer log.Debugf("[devmapper] RemoveDevice END")
|
||||||
|
task, err := createTask(DeviceRemove, name)
|
||||||
if task == nil {
|
if task == nil {
|
||||||
return ErrCreateRemoveTask
|
|
||||||
}
|
|
||||||
if err := task.SetName(name); err != nil {
|
|
||||||
log.Debugf("Can't set task name %s", name)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := task.Run(); err != nil {
|
|
||||||
return ErrRunRemoveDevice
|
var cookie uint = 0
|
||||||
|
if err := task.SetCookie(&cookie, 0); err != nil {
|
||||||
|
return fmt.Errorf("Can not set cookie: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = task.Run(); err != nil {
|
||||||
|
if dmSawBusy {
|
||||||
|
return ErrBusy
|
||||||
|
}
|
||||||
|
return fmt.Errorf("Error running RemoveDevice %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
UdevWait(cookie)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,23 +577,6 @@ func DeleteDevice(poolName string, deviceId int) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeDevice(name string) error {
|
|
||||||
log.Debugf("[devmapper] RemoveDevice START")
|
|
||||||
defer log.Debugf("[devmapper] RemoveDevice END")
|
|
||||||
task, err := createTask(DeviceRemove, name)
|
|
||||||
if task == nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
dmSawBusy = false
|
|
||||||
if err = task.Run(); err != nil {
|
|
||||||
if dmSawBusy {
|
|
||||||
return ErrBusy
|
|
||||||
}
|
|
||||||
return fmt.Errorf("Error running RemoveDevice %s", err)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ActivateDevice(poolName string, name string, deviceId int, size uint64) error {
|
func ActivateDevice(poolName string, name string, deviceId int, size uint64) error {
|
||||||
task, err := createTask(DeviceCreate, name)
|
task, err := createTask(DeviceCreate, name)
|
||||||
if task == nil {
|
if task == nil {
|
||||||
|
|
Loading…
Reference in a new issue