summaryrefslogtreecommitdiff
path: root/daemon/archive.go
diff options
context:
space:
mode:
authorJohn Howard (VM) <jhoward@ntdev.microsoft.com>2017-03-15 11:29:12 -0700
committerJohn Howard (VM) <jhoward@ntdev.microsoft.com>2017-03-15 13:31:41 -0700
commit481d2633fee30bdc4d00b9d61b031064f5af5739 (patch)
tree28d03d0ca9e8cd439a80fb91525351d44610d8a6 /daemon/archive.go
parent297786f30c348b28d6cd93e8e0911ac31f31d190 (diff)
downloaddocker-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.go20
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)
}