diff options
author | John Howard (VM) <jhoward@ntdev.microsoft.com> | 2017-03-15 11:29:12 -0700 |
---|---|---|
committer | John Howard (VM) <jhoward@ntdev.microsoft.com> | 2017-03-15 13:31:41 -0700 |
commit | 481d2633fee30bdc4d00b9d61b031064f5af5739 (patch) | |
tree | 28d03d0ca9e8cd439a80fb91525351d44610d8a6 /daemon/archive.go | |
parent | 297786f30c348b28d6cd93e8e0911ac31f31d190 (diff) | |
download | docker-481d2633fee30bdc4d00b9d61b031064f5af5739.tar.gz |
Windows: Fail fs ops on running Hyper-V containers gracefully
Signed-off-by: John Howard (VM) <jhoward@ntdev.microsoft.com>
Diffstat (limited to 'daemon/archive.go')
-rw-r--r-- | daemon/archive.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/daemon/archive.go b/daemon/archive.go index 1999f1243b..4dc43344d1 100644 --- a/daemon/archive.go +++ b/daemon/archive.go @@ -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) } |