Explorar o código

Merge pull request #9183 from vbatts/dm_udevwait

devmapper: Call UdevWait() even in failure path
Michael Crosby %!s(int64=10) %!d(string=hai) anos
pai
achega
fb1540199e
Modificáronse 1 ficheiros con 4 adicións e 6 borrados
  1. 4 6
      pkg/devicemapper/devmapper.go

+ 4 - 6
pkg/devicemapper/devmapper.go

@@ -373,13 +373,12 @@ func CreatePool(poolName string, dataFile, metadataFile *os.File, poolBlockSize
 	if err := task.SetCookie(&cookie, 0); err != nil {
 		return fmt.Errorf("Can't set cookie %s", err)
 	}
+	defer UdevWait(cookie)
 
 	if err := task.Run(); err != nil {
 		return fmt.Errorf("Error running DeviceCreate (CreatePool) %s", err)
 	}
 
-	UdevWait(cookie)
-
 	return nil
 }
 
@@ -516,13 +515,12 @@ func ResumeDevice(name string) error {
 	if err := task.SetCookie(&cookie, 0); err != nil {
 		return fmt.Errorf("Can't set cookie %s", err)
 	}
+	defer UdevWait(cookie)
 
 	if err := task.Run(); err != nil {
 		return fmt.Errorf("Error running DeviceResume %s", err)
 	}
 
-	UdevWait(cookie)
-
 	return nil
 }
 
@@ -596,12 +594,12 @@ func ActivateDevice(poolName string, name string, deviceId int, size uint64) err
 		return fmt.Errorf("Can't set cookie %s", err)
 	}
 
+	defer UdevWait(cookie)
+
 	if err := task.Run(); err != nil {
 		return fmt.Errorf("Error running DeviceCreate (ActivateDevice) %s", err)
 	}
 
-	UdevWait(cookie)
-
 	return nil
 }