mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-28 16:27:50 +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
|
||||
}
|
||||
|
||||
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
|
||||
for cid, cstate := range fs.containerState {
|
||||
cdir := filepath.Join(sandboxDir, cid)
|
||||
if err := os.MkdirAll(cdir, dirMode); err != nil {
|
||||
return err
|
||||
if dirCreationErr = os.MkdirAll(cdir, dirMode); dirCreationErr != nil {
|
||||
return dirCreationErr
|
||||
}
|
||||
createdDirs = append(createdDirs, cdir)
|
||||
|
||||
cfile := filepath.Join(cdir, persistFile)
|
||||
cf, err := os.OpenFile(cfile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, fileMode)
|
||||
|
Loading…
Reference in New Issue
Block a user