diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2011-03-21 13:07:17 +1030 |
---|---|---|
committer | Ronnie Sahlberg <sahlberg@lenovo-laptop.(none)> | 2011-03-21 13:57:53 +1100 |
commit | 88c9dec16669c929178722a75dadd4605b4a75a0 (patch) | |
tree | 35237843c65be04bebe86eddd73f52d1756ffc02 /ctdb/server/ctdb_freeze.c | |
parent | 435dad05cbb6d7f5149a24766145bd243145262a (diff) | |
download | samba-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.c | 5 |
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); |