瀏覽代碼

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 11 年之前
父節點
當前提交
6c7ae06435
共有 1 個文件被更改,包括 5 次插入0 次删除
  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
 		}