diff options
Diffstat (limited to 'src/btree/bt_page.c')
-rw-r--r-- | src/btree/bt_page.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/btree/bt_page.c b/src/btree/bt_page.c index ca6a39dbf86..4386979e267 100644 --- a/src/btree/bt_page.c +++ b/src/btree/bt_page.c @@ -47,14 +47,15 @@ __wt_page_in_func( WT_RET(__wt_cache_read(session, parent, ref)); oldgen = F_ISSET(session, WT_SESSION_NO_CACHE) ? 1 : 0; continue; - case WT_REF_LOCKED: case WT_REF_READING: - /* - * The page is being read or considered for eviction -- - * wait for that to be resolved. - */ + if (LF_ISSET(WT_READ_CACHE_ONLY)) + return (WT_NOTFOUND); + /* FALLTHROUGH */ + case WT_REF_LOCKED: + if (LF_ISSET(WT_READ_NO_WAIT)) + return (WT_NOTFOUND); + /* The page is busy -- wait. */ break; - case WT_REF_EVICT_WALK: case WT_REF_MEM: /* * The page is in memory: get a hazard pointer, update |