mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Image: unmount device before removing it on failures
If we don't do this the remove will fail due to EBUSY
This commit is contained in:
parent
ed65815613
commit
009d0f9d81
1 changed files with 3 additions and 0 deletions
3
image.go
3
image.go
|
@ -414,6 +414,7 @@ func (image *Image) ensureImageDevice(devices DeviceSet) error {
|
||||||
|
|
||||||
err = ioutil.WriteFile(path.Join(mountDir, ".docker-id"), []byte(image.ID), 0600)
|
err = ioutil.WriteFile(path.Join(mountDir, ".docker-id"), []byte(image.ID), 0600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||||
_ = devices.RemoveDevice(image.ID)
|
_ = devices.RemoveDevice(image.ID)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -432,11 +433,13 @@ func (image *Image) ensureImageDevice(devices DeviceSet) error {
|
||||||
// part of the container changes
|
// part of the container changes
|
||||||
dockerinitLayer, err := image.getDockerInitLayer()
|
dockerinitLayer, err := image.getDockerInitLayer()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||||
_ = devices.RemoveDevice(image.ID)
|
_ = devices.RemoveDevice(image.ID)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = image.applyLayer(dockerinitLayer, mountDir)
|
err = image.applyLayer(dockerinitLayer, mountDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
_ = devices.UnmountDevice(image.ID, mountDir)
|
||||||
_ = devices.RemoveDevice(image.ID)
|
_ = devices.RemoveDevice(image.ID)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue