diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-09-05 21:04:32 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2017-09-05 21:04:32 +0800 |
commit | cd6c861dc567478adb64b7efef327a4aceda97f5 (patch) | |
tree | ba7b5520af5c2fb8a6715b80954a75a4153b8c61 /vendor/github.com/syndtr/goleveldb/leveldb/storage | |
parent | c91f7beb53ff1ab0376d9aa5fab5a8de8b04631c (diff) | |
download | go-tangerine-cd6c861dc567478adb64b7efef327a4aceda97f5.tar.gz go-tangerine-cd6c861dc567478adb64b7efef327a4aceda97f5.tar.zst go-tangerine-cd6c861dc567478adb64b7efef327a4aceda97f5.zip |
vendor: pull in latest changes for goleveldb (#15090)
Diffstat (limited to 'vendor/github.com/syndtr/goleveldb/leveldb/storage')
-rw-r--r-- | vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go index e53434cab..1189decac 100644 --- a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go +++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go @@ -234,14 +234,30 @@ func (fs *fileStorage) SetMeta(fd FileDesc) (err error) { return } _, err = fmt.Fprintln(w, fsGenName(fd)) - // Close the file first. - if cerr := w.Close(); cerr != nil { - fs.log(fmt.Sprintf("close CURRENT.%d: %v", fd.Num, cerr)) + if err != nil { + fs.log(fmt.Sprintf("write CURRENT.%d: %v", fd.Num, err)) + return + } + if err = w.Sync(); err != nil { + fs.log(fmt.Sprintf("flush CURRENT.%d: %v", fd.Num, err)) + return + } + if err = w.Close(); err != nil { + fs.log(fmt.Sprintf("close CURRENT.%d: %v", fd.Num, err)) + return } if err != nil { return } - return rename(path, filepath.Join(fs.path, "CURRENT")) + if err = rename(path, filepath.Join(fs.path, "CURRENT")); err != nil { + fs.log(fmt.Sprintf("rename CURRENT.%d: %v", fd.Num, err)) + return + } + // Sync root directory. + if err = syncDir(fs.path); err != nil { + fs.log(fmt.Sprintf("syncDir: %v", err)) + } + return } func (fs *fileStorage) GetMeta() (fd FileDesc, err error) { |