summaryrefslogtreecommitdiff
path: root/ctdb/server/ctdb_freeze.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2011-03-21 13:07:17 +1030
committerRonnie Sahlberg <sahlberg@lenovo-laptop.(none)>2011-03-21 13:57:53 +1100
commit88c9dec16669c929178722a75dadd4605b4a75a0 (patch)
tree35237843c65be04bebe86eddd73f52d1756ffc02 /ctdb/server/ctdb_freeze.c
parent435dad05cbb6d7f5149a24766145bd243145262a (diff)
downloadsamba-88c9dec16669c929178722a75dadd4605b4a75a0.tar.gz
ctdbd: call tdb_reopen_all() in freeze child.
In theory, the ctdbd parent shouldn't be holding any locks, but it's a good idea to always call tdb_reopen_all() after a fork(). (This used to be ctdb commit 3d9828861c771a060923f3181fa8224e0122bffc)
Diffstat (limited to 'ctdb/server/ctdb_freeze.c')
-rw-r--r--ctdb/server/ctdb_freeze.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_freeze.c b/ctdb/server/ctdb_freeze.c
index 0f70fd35023..9eb24930880 100644
--- a/ctdb/server/ctdb_freeze.c
+++ b/ctdb/server/ctdb_freeze.c
@@ -204,6 +204,11 @@ static struct ctdb_freeze_handle *ctdb_freeze_lock(struct ctdb_context *ctdb, ui
close(fd[0]);
debug_extra = talloc_asprintf(NULL, "freeze_lock-%u:", priority);
+ if (tdb_reopen_all(true) != 0) {
+ DEBUG(DEBUG_ERR,(__location__ " Failed to reopen databases\n"));
+ _exit(0);
+ }
+
ret = ctdb_lock_all_databases(ctdb, priority);
if (ret != 0) {
_exit(0);