summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorJimmy Yang <jimmy.yang@oracle.com>2011-05-04 00:09:48 -0700
committerJimmy Yang <jimmy.yang@oracle.com>2011-05-04 00:09:48 -0700
commit0cf6d8b0baf4dfb25fc37fa99207c7de091031da (patch)
treebedc5069993b270fd9861fb28353ebda346fb653 /storage
parentfcd0110499ffdb210ee7b20260b3c5dfdd0beec5 (diff)
downloadmariadb-git-0cf6d8b0baf4dfb25fc37fa99207c7de091031da.tar.gz
Fix bug #12424282 - INNODB PERFORMANCE SCHEMA: Double accounting for OS_AIO_SYNC
I/O in os_aio_func. Approved by Sunny Bains
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/os/os0file.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
index 50607e07076..bd48d0e4b6e 100644
--- a/storage/innobase/os/os0file.c
+++ b/storage/innobase/os/os0file.c
@@ -4051,16 +4051,23 @@ os_aio_func(
Windows async i/o, Windows does not allow us to use
ordinary synchronous os_file_read etc. on the same file,
therefore we have built a special mechanism for synchronous
- wait in the Windows case. */
+ wait in the Windows case.
+ Also note that the Performance Schema instrumentation has
+ been performed by current os_aio_func()'s wrapper function
+ pfs_os_aio_func(). So we would no longer need to call
+ Performance Schema instrumented os_file_read() and
+ os_file_write(). Instead, we should use os_file_read_func()
+ and os_file_write_func() */
if (type == OS_FILE_READ) {
- return(os_file_read(file, buf, offset,
+ return(os_file_read_func(file, buf, offset,
offset_high, n));
}
ut_a(type == OS_FILE_WRITE);
- return(os_file_write(name, file, buf, offset, offset_high, n));
+ return(os_file_write_func(name, file, buf, offset,
+ offset_high, n));
}
try_again: