summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-04-20 14:08:48 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2023-04-20 14:08:48 +0300
commit7e31a8e7fa97a87fc164381588d172bf0e76abb6 (patch)
tree18386e7d3321d2f2d5f4bd0cf5508cdadc29bd8a
parentc21bc17a51f6eef6158ef80e7deeb5a280598c1d (diff)
downloadmariadb-git-7e31a8e7fa97a87fc164381588d172bf0e76abb6.tar.gz
MDEV-26827 fixup: Fix os_aio_wait_until_no_pending_writes()
io_callback(): Process the request before releasing the write slot. Before commit a091d6ac4e7d2d7873749e685943b3032ccfda57 when we had a duplicated counter for writes, either ordering was fine. Now, correctness depends on os_aio_wait_until_no_pending_writes().
-rw-r--r--storage/innobase/os/os0file.cc3
1 files changed, 1 insertions, 2 deletions
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index d366c784b96..e816f6ef7b1 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -3457,9 +3457,8 @@ static void io_callback(tpool::aiocb *cb)
else
{
ut_ad(write_slots->contains(cb));
- const IORequest req{request};
+ fil_aio_callback(request);
write_slots->release(cb);
- fil_aio_callback(req);
}
}