aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/syndtr/goleveldb/leveldb/storage
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2017-09-05 21:04:32 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-09-05 21:04:32 +0800
commitcd6c861dc567478adb64b7efef327a4aceda97f5 (patch)
treeba7b5520af5c2fb8a6715b80954a75a4153b8c61 /vendor/github.com/syndtr/goleveldb/leveldb/storage
parentc91f7beb53ff1ab0376d9aa5fab5a8de8b04631c (diff)
downloadgo-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.go24
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) {