summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--storage/innobase/lock/lock0lock.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc
index 15a87ce8469..448021d840a 100644
--- a/storage/innobase/lock/lock0lock.cc
+++ b/storage/innobase/lock/lock0lock.cc
@@ -4116,7 +4116,6 @@ static bool lock_release_on_prepare_try(trx_t *trx)
lock_sys.rd_unlock();
trx->mutex_unlock();
- trx->set_skip_lock_inheritance();
return all_released;
}
@@ -4124,6 +4123,8 @@ static bool lock_release_on_prepare_try(trx_t *trx)
and release possible other transactions waiting because of these locks. */
void lock_release_on_prepare(trx_t *trx)
{
+ auto _ = make_scope_exit([trx]() { trx->set_skip_lock_inheritance(); });
+
for (ulint count= 5; count--; )
if (lock_release_on_prepare_try(trx))
return;