mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-29 08:47:56 +00:00
Merge pull request #2232 from tedyu/rm-persist-dir
vc: Clean up directories in case MkdirAll fails
This commit is contained in:
commit
db696da98b
@ -126,12 +126,22 @@ func (fs *FS) ToDisk(ss persistapi.SandboxState, cs map[string]persistapi.Contai
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dirCreationErr error
|
||||||
|
var createdDirs []string
|
||||||
|
defer func() {
|
||||||
|
if dirCreationErr != nil && len(createdDirs) > 0 {
|
||||||
|
for _, dir := range createdDirs {
|
||||||
|
os.RemoveAll(dir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
// persist container configuration data
|
// persist container configuration data
|
||||||
for cid, cstate := range fs.containerState {
|
for cid, cstate := range fs.containerState {
|
||||||
cdir := filepath.Join(sandboxDir, cid)
|
cdir := filepath.Join(sandboxDir, cid)
|
||||||
if err := os.MkdirAll(cdir, dirMode); err != nil {
|
if dirCreationErr = os.MkdirAll(cdir, dirMode); dirCreationErr != nil {
|
||||||
return err
|
return dirCreationErr
|
||||||
}
|
}
|
||||||
|
createdDirs = append(createdDirs, cdir)
|
||||||
|
|
||||||
cfile := filepath.Join(cdir, persistFile)
|
cfile := filepath.Join(cdir, persistFile)
|
||||||
cf, err := os.OpenFile(cfile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, fileMode)
|
cf, err := os.OpenFile(cfile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, fileMode)
|
||||||
|
Loading…
Reference in New Issue
Block a user