diff options
author | Jimmy Yang <jimmy.yang@oracle.com> | 2011-05-04 00:09:48 -0700 |
---|---|---|
committer | Jimmy Yang <jimmy.yang@oracle.com> | 2011-05-04 00:09:48 -0700 |
commit | 0cf6d8b0baf4dfb25fc37fa99207c7de091031da (patch) | |
tree | bedc5069993b270fd9861fb28353ebda346fb653 /storage | |
parent | fcd0110499ffdb210ee7b20260b3c5dfdd0beec5 (diff) | |
download | mariadb-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.c | 13 |
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: |