summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorInaam Rana <inaam.rana@oracle.com>2013-02-01 09:47:16 -0500
committerInaam Rana <inaam.rana@oracle.com>2013-02-01 09:47:16 -0500
commit50c27a1492e149c2e5a2865ee71ae084230b0b9d (patch)
treeed9789ed8339ca60de63b8258cf4ceb50c02ca2d /storage
parent49e4ed1fde3be9a1c6063a4099e42df4947412ca (diff)
downloadmariadb-git-50c27a1492e149c2e5a2865ee71ae084230b0b9d.tar.gz
Bug#16249505 INNODB REPORTS THAT IT'S GOING TO WAIT FOR I/O BUT THE
I/O IS ASYNC rb://1934 approved by: Mikael Ronstrom (over email) When submitting AIO read request don't signal that the thread is about to wait on DISKIO
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/buf/buf0rea.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
index 40550186191..d12fd3fce31 100644
--- a/storage/innobase/buf/buf0rea.c
+++ b/storage/innobase/buf/buf0rea.c
@@ -177,7 +177,10 @@ buf_read_page_low(
ut_ad(buf_page_in_file(bpage));
- thd_wait_begin(NULL, THD_WAIT_DISKIO);
+ if (sync) {
+ thd_wait_begin(NULL, THD_WAIT_DISKIO);
+ }
+
if (zip_size) {
*err = fil_io(OS_FILE_READ | wake_later,
sync, space, zip_size, offset, 0, zip_size,
@@ -189,7 +192,10 @@ buf_read_page_low(
sync, space, 0, offset, 0, UNIV_PAGE_SIZE,
((buf_block_t*) bpage)->frame, bpage);
}
- thd_wait_end(NULL);
+
+ if (sync) {
+ thd_wait_end(NULL);
+ }
if (*err == DB_TABLESPACE_DELETED) {
buf_read_page_handle_error(bpage);