summaryrefslogtreecommitdiff
path: root/storage/xtradb/handler/ha_innodb.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/xtradb/handler/ha_innodb.cc')
-rw-r--r--storage/xtradb/handler/ha_innodb.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index 617c29a6536..8c56cd2a189 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -6643,9 +6643,9 @@ no_commit:
DBUG_RETURN(1);
}
- binlog_hton->commit(binlog_hton, user_thd, 1);
-
- wsrep_cleanup_transaction(user_thd);
+ if (binlog_hton->commit(binlog_hton, user_thd, 1))
+ DBUG_RETURN(1);
+ wsrep_post_commit(user_thd, TRUE);
#endif /* WITH_WSREP */
/* Source table is not in InnoDB format:
no need to re-acquire locks on it. */
@@ -6666,8 +6666,9 @@ no_commit:
case WSREP_TRX_ERROR:
DBUG_RETURN(1);
}
- binlog_hton->commit(binlog_hton, user_thd, 1);
- wsrep_cleanup_transaction(user_thd);
+ if (binlog_hton->commit(binlog_hton, user_thd, 1))
+ DBUG_RETURN(1);
+ wsrep_post_commit(user_thd, TRUE);
#endif /* WITH_WSREP */
/* Ensure that there are no other table locks than
LOCK_IX and LOCK_AUTO_INC on the destination table. */
@@ -14005,7 +14006,8 @@ static int innobase_wsrep_set_checkpoint(handlerton* hton, const XID* xid)
if (wsrep_is_wsrep_xid(xid)) {
mtr_t mtr;
mtr_start(&mtr);
- trx_sys_update_wsrep_checkpoint(xid, &mtr);
+ trx_sysf_t* sys_header = trx_sysf_get(&mtr);
+ trx_sys_update_wsrep_checkpoint(xid, sys_header, &mtr);
mtr_commit(&mtr);
return 0;
} else {