summaryrefslogtreecommitdiff
path: root/storage/spider/spd_trx.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/spider/spd_trx.cc')
-rw-r--r--storage/spider/spd_trx.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/storage/spider/spd_trx.cc b/storage/spider/spd_trx.cc
index b47b75a93cf..4f8296f1d01 100644
--- a/storage/spider/spd_trx.cc
+++ b/storage/spider/spd_trx.cc
@@ -2228,7 +2228,10 @@ int spider_internal_xa_commit(
spider_close_sys_table(thd, table_xa, &open_tables_backup, TRUE);
table_xa_opened = FALSE;
}
- spider_xa_unlock(&trx->internal_xid_state);
+ if (trx->internal_xa)
+ {
+ spider_xa_unlock(&trx->internal_xid_state);
+ }
DBUG_RETURN(0);
error:
@@ -2238,7 +2241,10 @@ error:
spider_close_sys_table(thd, table_xa_member, &open_tables_backup, TRUE);
error_in_commit:
error_open_table:
- spider_xa_unlock(&trx->internal_xid_state);
+ if (trx->internal_xa)
+ {
+ spider_xa_unlock(&trx->internal_xid_state);
+ }
DBUG_RETURN(error_num);
}
@@ -2464,7 +2470,10 @@ int spider_internal_xa_rollback(
spider_close_sys_table(thd, table_xa, &open_tables_backup, TRUE);
table_xa_opened = FALSE;
}
- spider_xa_unlock(&trx->internal_xid_state);
+ if (trx->internal_xa)
+ {
+ spider_xa_unlock(&trx->internal_xid_state);
+ }
DBUG_RETURN(0);
error:
@@ -2474,7 +2483,10 @@ error:
spider_close_sys_table(thd, table_xa_member, &open_tables_backup, TRUE);
error_in_rollback:
error_open_table:
- spider_xa_unlock(&trx->internal_xid_state);
+ if (trx->internal_xa)
+ {
+ spider_xa_unlock(&trx->internal_xid_state);
+ }
DBUG_RETURN(error_num);
}