mirror of https://github.com/k3s-io/k3s
fsync config checkpoint files after writing
parent
424819888a
commit
47beb80368
|
@ -83,6 +83,10 @@ func ReplaceFile(fs utilfs.Filesystem, path string, data []byte) error {
|
||||||
if _, err := tmpFile.Write(data); err != nil {
|
if _, err := tmpFile.Write(data); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// sync file, to ensure it's written in case a hard reset happens
|
||||||
|
if err := tmpFile.Sync(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := tmpFile.Close(); err != nil {
|
if err := tmpFile.Close(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,6 +101,11 @@ func (file *defaultFile) Write(b []byte) (n int, err error) {
|
||||||
return file.file.Write(b)
|
return file.file.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sync via os.File.Sync
|
||||||
|
func (file *defaultFile) Sync() error {
|
||||||
|
return file.file.Sync()
|
||||||
|
}
|
||||||
|
|
||||||
// Close via os.File.Close
|
// Close via os.File.Close
|
||||||
func (file *defaultFile) Close() error {
|
func (file *defaultFile) Close() error {
|
||||||
return file.file.Close()
|
return file.file.Close()
|
||||||
|
|
|
@ -107,6 +107,11 @@ func (file *fakeFile) Write(b []byte) (n int, err error) {
|
||||||
return file.file.Write(b)
|
return file.file.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sync via afero.File.Sync
|
||||||
|
func (file *fakeFile) Sync() error {
|
||||||
|
return file.file.Sync()
|
||||||
|
}
|
||||||
|
|
||||||
// Close via afero.File.Close
|
// Close via afero.File.Close
|
||||||
func (file *fakeFile) Close() error {
|
func (file *fakeFile) Close() error {
|
||||||
return file.file.Close()
|
return file.file.Close()
|
||||||
|
|
|
@ -45,5 +45,6 @@ type File interface {
|
||||||
// for now, the only os.File methods used are those below, add more as necessary
|
// for now, the only os.File methods used are those below, add more as necessary
|
||||||
Name() string
|
Name() string
|
||||||
Write(b []byte) (n int, err error)
|
Write(b []byte) (n int, err error)
|
||||||
|
Sync() error
|
||||||
Close() error
|
Close() error
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue