Browse Source

buf_page_get_zip(): Deduplicate some code

pull/1213/head
Marko Mäkelä 7 years ago
parent
commit
15a20367fb
  1. 14
      storage/innobase/buf/buf0buf.cc

14
storage/innobase/buf/buf0buf.cc

@ -3782,18 +3782,10 @@ err_exit:
ut_ad(!buf_pool_watch_is_sentinel(buf_pool, bpage));
switch (buf_page_get_state(bpage)) {
case BUF_BLOCK_POOL_WATCH:
case BUF_BLOCK_NOT_USED:
case BUF_BLOCK_READY_FOR_USE:
case BUF_BLOCK_MEMORY:
case BUF_BLOCK_REMOVE_HASH:
ut_error;
case BUF_BLOCK_ZIP_PAGE:
case BUF_BLOCK_ZIP_DIRTY:
buf_block_fix(bpage);
block_mutex = &buf_pool->zip_mutex;
mutex_enter(block_mutex);
goto got_block;
case BUF_BLOCK_FILE_PAGE:
/* Discard the uncompressed page frame if possible. */
@ -3808,16 +3800,16 @@ err_exit:
__FILE__, __LINE__);
block_mutex = &((buf_block_t*) bpage)->mutex;
mutex_enter(block_mutex);
goto got_block;
default:
break;
}
ut_error;
goto err_exit;
got_block:
mutex_enter(block_mutex);
must_read = buf_page_get_io_fix(bpage) == BUF_IO_READ;
rw_lock_s_unlock(hash_lock);

Loading…
Cancel
Save