🌐 AI搜索 & 代理 主页
Skip to content

Commit 649c944

Browse files
authored
Merge pull request #46703 from thaJeztah/24.0_backport_atomic-layer-data-write
[24.0 backport] daemon: overlay2: Write layer metadata atomically
2 parents 9b20b1a + 57bd388 commit 649c944

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

daemon/graphdriver/overlay2/overlay.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/docker/docker/pkg/containerfs"
2424
"github.com/docker/docker/pkg/directory"
2525
"github.com/docker/docker/pkg/idtools"
26+
"github.com/docker/docker/pkg/ioutils"
2627
"github.com/docker/docker/pkg/parsers"
2728
"github.com/docker/docker/quota"
2829
units "github.com/docker/go-units"
@@ -386,7 +387,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr
386387
}
387388

388389
// Write link id to link file
389-
if err := os.WriteFile(path.Join(dir, "link"), []byte(lid), 0644); err != nil {
390+
if err := ioutils.AtomicWriteFile(path.Join(dir, "link"), []byte(lid), 0o644); err != nil {
390391
return err
391392
}
392393

@@ -399,7 +400,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr
399400
return err
400401
}
401402

402-
if err := os.WriteFile(path.Join(d.dir(parent), "committed"), []byte{}, 0600); err != nil {
403+
if err := ioutils.AtomicWriteFile(path.Join(d.dir(parent), "committed"), []byte{}, 0o600); err != nil {
403404
return err
404405
}
405406

@@ -408,7 +409,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr
408409
return err
409410
}
410411
if lower != "" {
411-
if err := os.WriteFile(path.Join(dir, lowerFile), []byte(lower), 0666); err != nil {
412+
if err := ioutils.AtomicWriteFile(path.Join(dir, lowerFile), []byte(lower), 0o666); err != nil {
412413
return err
413414
}
414415
}

0 commit comments

Comments
 (0)