|
|
@ -404,7 +404,7 @@ static bool buf_page_decrypt_after_read(buf_page_t *bpage, |
|
|
|
|
|
|
|
if (id.space() == SRV_TMP_SPACE_ID |
|
|
|
&& innodb_encrypt_temporary_tables) { |
|
|
|
slot = buf_pool.io_buf_reserve(); |
|
|
|
slot = buf_pool.io_buf_reserve(false); |
|
|
|
slot->allocate(); |
|
|
|
bool ok = buf_tmp_page_decrypt(slot->crypt_buf, dst_frame); |
|
|
|
slot->release(); |
|
|
@ -426,7 +426,7 @@ decompress: |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
slot = buf_pool.io_buf_reserve(); |
|
|
|
slot = buf_pool.io_buf_reserve(false); |
|
|
|
slot->allocate(); |
|
|
|
|
|
|
|
decompress_with_slot: |
|
|
@ -449,7 +449,7 @@ decrypt_failed: |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
slot = buf_pool.io_buf_reserve(); |
|
|
|
slot = buf_pool.io_buf_reserve(false); |
|
|
|
slot->allocate(); |
|
|
|
|
|
|
|
/* decrypt using crypt_buf to dst_frame */ |
|
|
@ -1307,14 +1307,17 @@ void buf_pool_t::io_buf_t::close() |
|
|
|
n_slots= 0; |
|
|
|
} |
|
|
|
|
|
|
|
buf_tmp_buffer_t *buf_pool_t::io_buf_t::reserve() |
|
|
|
buf_tmp_buffer_t *buf_pool_t::io_buf_t::reserve(bool wait_for_reads) |
|
|
|
{ |
|
|
|
for (;;) |
|
|
|
{ |
|
|
|
for (buf_tmp_buffer_t *s= slots, *e= slots + n_slots; s != e; s++) |
|
|
|
if (s->acquire()) |
|
|
|
return s; |
|
|
|
buf_dblwr.flush_buffered_writes(); |
|
|
|
os_aio_wait_until_no_pending_writes(true); |
|
|
|
if (!wait_for_reads) |
|
|
|
continue; |
|
|
|
for (buf_tmp_buffer_t *s= slots, *e= slots + n_slots; s != e; s++) |
|
|
|
if (s->acquire()) |
|
|
|
return s; |
|
|
|