diff --git a/db.go b/db.go index c9d800f..a180f3b 100644 --- a/db.go +++ b/db.go @@ -241,6 +241,10 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) { return nil, err } + if db.readOnly { + return db, nil + } + db.freelist = newFreelist() noFreeList := db.meta().freelist == pgidNoFreelist if noFreeList { @@ -254,7 +258,7 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) { // Flush freelist when transitioning from no sync to sync so // NoFreelistSync unaware boltdb can open the db later. - if !db.NoFreelistSync && noFreeList && ((mode & 0222) != 0) { + if !db.NoFreelistSync && noFreeList { tx, err := db.Begin(true) if tx != nil { err = tx.Commit()