Browse Source

devmapper: cleanup error reporting

Solomon Hykes 11 years ago
parent
commit
0ad35c6746
1 changed files with 10 additions and 20 deletions
  1. 10 20
      devmapper/deviceset.go

+ 10 - 20
devmapper/deviceset.go

@@ -131,40 +131,33 @@ func (devices *DeviceSet) allocateTransactionId() uint64 {
 func (devices *DeviceSet) saveMetadata() error {
 	jsonData, err := json.Marshal(devices.MetaData)
 	if err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error encoding metaadata to json: %s", err)
 	}
 	tmpFile, err := ioutil.TempFile(filepath.Dir(devices.jsonFile()), ".json")
 	if err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error creating metadata file: %s", err)
 	}
 
 	n, err := tmpFile.Write(jsonData)
 	if err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error writing metadata to %s: %s", tmpFile.Name(), err)
 	}
 	if n < len(jsonData) {
 		return io.ErrShortWrite
 	}
 	if err := tmpFile.Sync(); err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error syncing metadata file %s: %s", tmpFile.Name(), err)
 	}
 	if err := tmpFile.Close(); err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error closing metadata file %s: %s", tmpFile.Name(), err)
 	}
 	if err := os.Rename(tmpFile.Name(), devices.jsonFile()); err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error committing metadata file", err)
 	}
 
 	if devices.NewTransactionId != devices.TransactionId {
 		if err = setTransactionId(devices.getPoolDevName(), devices.TransactionId, devices.NewTransactionId); err != nil {
-			utils.Debugf("\n--->Err: %s\n", err)
-			return err
+			return fmt.Errorf("Error setting devmapper transition ID: %s", err)
 		}
 		devices.TransactionId = devices.NewTransactionId
 	}
@@ -655,13 +648,11 @@ func (devices *DeviceSet) MountDevice(hash, path string, readOnly bool) error {
 	defer devices.Unlock()
 
 	if err := devices.ensureInit(); err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error initializing devmapper: %s", err)
 	}
 
 	if err := devices.activateDeviceIfNeeded(hash); err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error activating devmapper device for '%s': %s", hash, err)
 	}
 
 	info := devices.Devices[hash]
@@ -677,8 +668,7 @@ func (devices *DeviceSet) MountDevice(hash, path string, readOnly bool) error {
 		err = syscall.Mount(info.DevName(), path, "ext4", flags, "")
 	}
 	if err != nil {
-		utils.Debugf("\n--->Err: %s\n", err)
-		return err
+		return fmt.Errorf("Error mounting '%s' on '%s': %s", info.DevName(), path, err)
 	}
 
 	count := devices.activeMounts[path]