diff options
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 73d52e19bf1..a0781873183 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -19396,8 +19396,15 @@ bool innodb_use_native_aio_default() #ifdef HAVE_URING utsname &u= uname_for_io_uring; if (!uname(&u) && u.release[0] == '5' && u.release[1] == '.' && - u.release[2] == '1' && u.release[3] > '0' && u.release[3] < '6') + u.release[2] == '1' && u.release[3] >= '1' && u.release[3] <= '5' && + u.release[4] == '.') { + if (u.release[3] == '5') { + const char *s= strstr(u.version, "5.15."); + if (s || (s= strstr(u.release, "5.15."))) + if ((s[5] >= '3' || s[6] >= '0')) + return true; /* 5.15.3 and later should be fine */ + } io_uring_may_be_unsafe= u.release; return false; /* working around io_uring hangs (MDEV-26674) */ } |