Commit 94e49a71 authored by marko's avatar marko

branches/zip: Note that b (the newly created control block for the

compressed page) is not protected by block_mutex.  Before releasing
buf_pool->mutex, we can simply assign b->io_fix.  After reacquiring
buf_pool->mutex, we also have to acquire buf_pool->zip_mutex.
parent 9fe82e80
...@@ -998,7 +998,7 @@ buf_LRU_free_block( ...@@ -998,7 +998,7 @@ buf_LRU_free_block(
decompressing the block while we release decompressing the block while we release
buf_pool->mutex and block_mutex. */ buf_pool->mutex and block_mutex. */
b->buf_fix_count++; b->buf_fix_count++;
buf_page_set_io_fix(b, BUF_IO_READ); b->io_fix = BUF_IO_READ;
} }
mutex_exit(&buf_pool->mutex); mutex_exit(&buf_pool->mutex);
...@@ -1037,8 +1037,10 @@ buf_LRU_free_block( ...@@ -1037,8 +1037,10 @@ buf_LRU_free_block(
mutex_enter(block_mutex); mutex_enter(block_mutex);
if (b) { if (b) {
mutex_enter(&buf_pool->zip_mutex);
b->buf_fix_count--; b->buf_fix_count--;
buf_page_set_io_fix(b, BUF_IO_NONE); buf_page_set_io_fix(b, BUF_IO_NONE);
mutex_exit(&buf_pool->zip_mutex);
} }
buf_LRU_block_free_hashed_page((buf_block_t*) bpage); buf_LRU_block_free_hashed_page((buf_block_t*) bpage);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment