mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	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
							
								
									42861f3b45
								
							
						
					
					
						commit
						c9a7662208
					
				
					 1 changed files with 18 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = task.Run(); err != nil {
 | 
			
		||||
		if dmSawBusy {
 | 
			
		||||
			return ErrBusy
 | 
			
		||||
		}
 | 
			
		||||
		return fmt.Errorf("Error running RemoveDevice %s", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	UdevWait(cookie)
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue