summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFredrik Gustafsson <fredrik@erlang.org>2013-08-01 10:58:09 +0200
committerFredrik Gustafsson <fredrik@erlang.org>2013-08-01 10:58:09 +0200
commit14076e4b215eee176899bf595a8faa0e5586ddce (patch)
tree4877f8f6c7d8cf79ebc812546d22c8ed02c0cf89
parent4c5ba07c595fbf51791000205478bd7f46da29dc (diff)
parent1a5f96ce02e8228c09e214a0736e2ffa0a8091ee (diff)
downloaderlang-14076e4b215eee176899bf595a8faa0e5586ddce.tar.gz
Merge branch 'ao/fix_mnesia_block_table_exception' into pu
-rw-r--r--lib/mnesia/src/mnesia_controller.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/mnesia/src/mnesia_controller.erl b/lib/mnesia/src/mnesia_controller.erl
index 78f7bfa325..b1f8886e7f 100644
--- a/lib/mnesia/src/mnesia_controller.erl
+++ b/lib/mnesia/src/mnesia_controller.erl
@@ -1676,9 +1676,13 @@ add_active_replica(Tab, Node, Cs = #cstruct{}) ->
block_table(Tab) ->
Var = {Tab, where_to_commit},
- Old = val(Var),
- New = {blocked, Old},
- set(Var, New). % where_to_commit
+ case is_tab_blocked(val(Var)) of
+ {false, Old}->
+ New = {blocked, Old},
+ set(Var, New); % where_to_commit
+ {true, _Old}-> % already blocked
+ ignore
+ end.
unblock_table(Tab) ->
call({unblock_table, Tab}).