More for MIPS

Paranoia for 3630066843 do the
cacheflush before setting mti_txnid.
vl32
Howard Chu 10 years ago
parent 8498c6cba2
commit 9febe03eb5
  1. 9
      libraries/liblmdb/mdb.c

@ -3581,6 +3581,10 @@ fail:
return rc; return rc;
} }
done: done:
/* MIPS has cache coherency issues, this is a no-op everywhere else */
if (!(env->me_flags & MDB_WRITEMAP)) {
CACHEFLUSH(env->me_map, txn->mt_next_pgno * env->me_psize, DCACHE);
}
/* Memory ordering issues are irrelevant; since the entire writer /* Memory ordering issues are irrelevant; since the entire writer
* is wrapped by wmutex, all of these changes will become visible * is wrapped by wmutex, all of these changes will become visible
* after the wmutex is unlocked. Since the DB is multi-version, * after the wmutex is unlocked. Since the DB is multi-version,
@ -3590,11 +3594,6 @@ done:
if (env->me_txns) if (env->me_txns)
env->me_txns->mti_txnid = txn->mt_txnid; env->me_txns->mti_txnid = txn->mt_txnid;
/* MIPS has cache coherency issues, this is a no-op everywhere else */
if (!(env->me_flags & MDB_WRITEMAP)) {
CACHEFLUSH(env->me_map, txn->mt_next_pgno * env->me_psize, DCACHE);
}
return MDB_SUCCESS; return MDB_SUCCESS;
} }

Loading…
Cancel
Save