Explorar o código

Image.Changes: Deactivate image device after unmounting it

There is no need to keep the image device around if we were the
onces creating the device.
Alexander Larsson %!s(int64=12) %!d(string=hai) anos
pai
achega
6c7ae06435
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      image.go

+ 5 - 0
image.go

@@ -617,6 +617,8 @@ func (image *Image) Changes(runtime *Runtime, root, rw, id string) ([]Change, er
 			return nil, err
 		}
 
+		wasActivated := devices.HasActivatedDevice(image.ID)
+
 		// We re-use rw for the temporary mount of the base image as its
 		// not used by device-mapper otherwise
 		err = devices.MountDevice(image.ID, rw)
@@ -626,6 +628,9 @@ func (image *Image) Changes(runtime *Runtime, root, rw, id string) ([]Change, er
 
 		changes, err := ChangesDirs(root, rw)
 		_ = devices.UnmountDevice(image.ID, rw)
+		if !wasActivated {
+			_ = devices.DeactivateDevice(image.ID)
+		}
 		if err != nil {
 			return nil, err
 		}