1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #9164 from vbatts/vbatts-dm_removedevice

pkg/devicemapper: cleanup removeDevice differences
This commit is contained in:
Michael Crosby 2014-11-14 16:56:02 -08:00
commit c89062bafc

View file

@ -62,7 +62,7 @@ var (
ErrSetDevDir = errors.New("dm_set_dev_dir failed")
ErrGetLibraryVersion = errors.New("dm_get_library_version failed")
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")
ErrGetLoopbackBackingFile = errors.New("Unable to get loopback backing file")
ErrLoopbackSetCapacity = errors.New("Unable set loopback capacity")
@ -296,18 +296,27 @@ func GetLibraryVersion() (string, error) {
// Useful helper for cleanup
func RemoveDevice(name string) error {
// TODO(vbatts) just use the other removeDevice()
task := TaskCreate(DeviceRemove)
log.Debugf("[devmapper] RemoveDevice START")
defer log.Debugf("[devmapper] RemoveDevice END")
task, err := createTask(DeviceRemove, name)
if task == nil {
return ErrCreateRemoveTask
}
if err := task.SetName(name); err != nil {
log.Debugf("Can't set task name %s", name)
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)
}
defer UdevWait(cookie)
dmSawBusy = false // reset before the task is run
if err = task.Run(); err != nil {
if dmSawBusy {
return ErrBusy
}
return fmt.Errorf("Error running RemoveDevice %s", err)
}
return nil
}
@ -534,7 +543,7 @@ func CreateDevice(poolName string, deviceId *int) error {
return fmt.Errorf("Can't set message %s", err)
}
dmSawExist = false
dmSawExist = false // reset before the task is run
if err := task.Run(); err != nil {
if dmSawExist {
// Already exists, try next id
@ -568,23 +577,6 @@ func DeleteDevice(poolName string, deviceId int) error {
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 {
task, err := createTask(DeviceCreate, name)
if task == nil {
@ -646,7 +638,7 @@ func CreateSnapDevice(poolName string, deviceId *int, baseName string, baseDevic
return fmt.Errorf("Can't set message %s", err)
}
dmSawExist = false
dmSawExist = false // reset before the task is run
if err := task.Run(); err != nil {
if dmSawExist {
// Already exists, try next id