mirror of https://github.com/docker/docs.git
devmapper: Fail device deletion early if device is still mounted
If a device is still mounted at the time of DeleteDevice(), that means higher layers have not called Put() properly on the device and are trying to delete it. This is a bug in the code where Get() and Put() have not been properly paired up. Fail device deletion if it is still mounted. Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
This commit is contained in:
parent
f5c0eb9ffe
commit
e97e46b737
|
@ -1521,6 +1521,13 @@ func (devices *DeviceSet) DeleteDevice(hash string) error {
|
|||
devices.Lock()
|
||||
defer devices.Unlock()
|
||||
|
||||
// If mountcount is not zero, that means devices is still in use
|
||||
// or has not been Put() properly. Fail device deletion.
|
||||
|
||||
if info.mountCount != 0 {
|
||||
return fmt.Errorf("devmapper: Can't delete device %v as it is still mounted. mntCount=%v", info.Hash, info.mountCount)
|
||||
}
|
||||
|
||||
return devices.deleteDevice(info)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue