Windows: Fail fs ops on running Hyper-V containers gracefully

Signed-off-by: John Howard (VM) <jhoward@ntdev.microsoft.com>
This commit is contained in:
John Howard (VM)
2017-03-15 11:29:12 -07:00
parent 297786f30c
commit 481d2633fe
3 changed files with 53 additions and 1 deletions

View File

@@ -34,6 +34,11 @@ func (daemon *Daemon) ContainerCopy(name string, res string) (io.ReadCloser, err
res = res[1:]
}
// Make sure an online file-system operation is permitted.
if err := daemon.isOnlineFSOperationPermitted(container); err != nil {
return nil, err
}
return daemon.containerCopy(container, res)
}
@@ -45,6 +50,11 @@ func (daemon *Daemon) ContainerStatPath(name string, path string) (stat *types.C
return nil, err
}
// Make sure an online file-system operation is permitted.
if err := daemon.isOnlineFSOperationPermitted(container); err != nil {
return nil, err
}
return daemon.containerStatPath(container, path)
}
@@ -57,6 +67,11 @@ func (daemon *Daemon) ContainerArchivePath(name string, path string) (content io
return nil, nil, err
}
// Make sure an online file-system operation is permitted.
if err := daemon.isOnlineFSOperationPermitted(container); err != nil {
return nil, nil, err
}
return daemon.containerArchivePath(container, path)
}
@@ -72,6 +87,11 @@ func (daemon *Daemon) ContainerExtractToDir(name, path string, noOverwriteDirNon
return err
}
// Make sure an online file-system operation is permitted.
if err := daemon.isOnlineFSOperationPermitted(container); err != nil {
return err
}
return daemon.containerExtractToDir(container, path, noOverwriteDirNonDir, content)
}