]> git.sur5r.net Git - openldap/commitdiff
More for MIPS
authorHoward Chu <hyc@symas.com>
Sat, 2 Aug 2014 17:33:35 +0000 (10:33 -0700)
committerHoward Chu <hyc@symas.com>
Sat, 2 Aug 2014 17:33:35 +0000 (10:33 -0700)
Paranoia for 3630066843b7ca6b2cd12911d3e2fe3314cd4549 do the
cacheflush before setting mti_txnid.

libraries/liblmdb/mdb.c

index 96f5772903ea9e338883b69185327ed49f77308b..16f5855615e92d183feaf086a693871597d194a4 100644 (file)
@@ -3581,6 +3581,10 @@ fail:
                return rc;
        }
 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
         * is wrapped by wmutex, all of these changes will become visible
         * after the wmutex is unlocked. Since the DB is multi-version,
@@ -3590,11 +3594,6 @@ done:
        if (env->me_txns)
                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;
 }