summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@mongodb.com>2016-11-16 21:09:45 +1100
committerMichael Cahill <michael.cahill@mongodb.com>2016-11-16 21:09:45 +1100
commitca6eee06ffdacc8e191987e64b3791740dad21e1 (patch)
tree2ded23c60276ab8daec2a56c11bf20fd64ad9236 /src/include
parent85121cf51f39f6959e02d5364bc51d51e48fe15b (diff)
parent1ce36af292fd0317021091a0523376b0533ac3bf (diff)
Merge branch 'develop' into mongodb-3.4mongodb-3.5.0mongodb-3.4.1mongodb-3.4.0
Diffstat (limited to 'src/include')
-rw-r--r--src/include/btree.i6
-rw-r--r--src/include/flags.h37
-rw-r--r--src/include/txn.h3
3 files changed, 27 insertions, 19 deletions
diff --git a/src/include/btree.i b/src/include/btree.i
index 8f44bc4eddd..ad603f3ea53 100644
--- a/src/include/btree.i
+++ b/src/include/btree.i
@@ -408,7 +408,11 @@ __wt_cache_page_evict(WT_SESSION_IMPL *session, WT_PAGE *page)
/* Update pages and bytes evicted. */
(void)__wt_atomic_add64(&cache->bytes_evict, page->memory_footprint);
- (void)__wt_atomic_addv64(&cache->pages_evict, 1);
+
+ if (F_ISSET(session, WT_SESSION_IN_SPLIT))
+ (void)__wt_atomic_subv64(&cache->pages_inmem, 1);
+ else
+ (void)__wt_atomic_addv64(&cache->pages_evict, 1);
}
/*
diff --git a/src/include/flags.h b/src/include/flags.h
index b0d167525b2..d4c0b519cb1 100644
--- a/src/include/flags.h
+++ b/src/include/flags.h
@@ -52,24 +52,25 @@
#define WT_READ_WONT_NEED 0x00001000
#define WT_SESSION_CAN_WAIT 0x00000001
#define WT_SESSION_INTERNAL 0x00000002
-#define WT_SESSION_LOCKED_CHECKPOINT 0x00000004
-#define WT_SESSION_LOCKED_HANDLE_LIST 0x00000008
-#define WT_SESSION_LOCKED_METADATA 0x00000010
-#define WT_SESSION_LOCKED_PASS 0x00000020
-#define WT_SESSION_LOCKED_SCHEMA 0x00000040
-#define WT_SESSION_LOCKED_SLOT 0x00000080
-#define WT_SESSION_LOCKED_TABLE 0x00000100
-#define WT_SESSION_LOCKED_TURTLE 0x00000200
-#define WT_SESSION_LOCK_NO_WAIT 0x00000400
-#define WT_SESSION_LOGGING_INMEM 0x00000800
-#define WT_SESSION_LOOKASIDE_CURSOR 0x00001000
-#define WT_SESSION_NO_CACHE 0x00002000
-#define WT_SESSION_NO_DATA_HANDLES 0x00004000
-#define WT_SESSION_NO_EVICTION 0x00008000
-#define WT_SESSION_NO_LOGGING 0x00010000
-#define WT_SESSION_NO_SCHEMA_LOCK 0x00020000
-#define WT_SESSION_QUIET_CORRUPT_FILE 0x00040000
-#define WT_SESSION_SERVER_ASYNC 0x00080000
+#define WT_SESSION_IN_SPLIT 0x00000004
+#define WT_SESSION_LOCKED_CHECKPOINT 0x00000008
+#define WT_SESSION_LOCKED_HANDLE_LIST 0x00000010
+#define WT_SESSION_LOCKED_METADATA 0x00000020
+#define WT_SESSION_LOCKED_PASS 0x00000040
+#define WT_SESSION_LOCKED_SCHEMA 0x00000080
+#define WT_SESSION_LOCKED_SLOT 0x00000100
+#define WT_SESSION_LOCKED_TABLE 0x00000200
+#define WT_SESSION_LOCKED_TURTLE 0x00000400
+#define WT_SESSION_LOCK_NO_WAIT 0x00000800
+#define WT_SESSION_LOGGING_INMEM 0x00001000
+#define WT_SESSION_LOOKASIDE_CURSOR 0x00002000
+#define WT_SESSION_NO_CACHE 0x00004000
+#define WT_SESSION_NO_DATA_HANDLES 0x00008000
+#define WT_SESSION_NO_EVICTION 0x00010000
+#define WT_SESSION_NO_LOGGING 0x00020000
+#define WT_SESSION_NO_SCHEMA_LOCK 0x00040000
+#define WT_SESSION_QUIET_CORRUPT_FILE 0x00080000
+#define WT_SESSION_SERVER_ASYNC 0x00100000
#define WT_STAT_CLEAR 0x00000001
#define WT_STAT_JSON 0x00000002
#define WT_STAT_ON_CLOSE 0x00000004
diff --git a/src/include/txn.h b/src/include/txn.h
index 774f635d7ba..344275e23d0 100644
--- a/src/include/txn.h
+++ b/src/include/txn.h
@@ -49,8 +49,11 @@
WT_ASSERT((s), (s)->txn.forced_iso > 0); \
(s)->txn.forced_iso--; \
WT_ASSERT((s), txn_state->id == saved_state.id && \
+ (txn_state->metadata_pinned == saved_state.metadata_pinned ||\
+ saved_state.metadata_pinned == WT_TXN_NONE) && \
(txn_state->pinned_id == saved_state.pinned_id || \
saved_state.pinned_id == WT_TXN_NONE)); \
+ txn_state->metadata_pinned = saved_state.metadata_pinned; \
txn_state->pinned_id = saved_state.pinned_id; \
} while (0)