diff options
author | Andrew Bartlett <abartlet@samba.org> | 2018-03-15 13:42:17 +1300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2018-04-12 05:15:16 +0200 |
commit | 46b6f2d782efb0d15e676c5be359e1a4145cf426 (patch) | |
tree | 5ece044286121faaa6ed13e790202ef7462eb58f /lib/ldb-samba | |
parent | 056b2abde615aab986e43c41c297edfaf58aaea2 (diff) | |
download | samba-46b6f2d782efb0d15e676c5be359e1a4145cf426.tar.gz |
ldb_wrap: Remove ldb_transaction_cancel_noerr from ldb_wrap_fork_hook()
Writing to a TDB, without locks (these are per-process) in a forked child is never going to
end well, if a transaction is open at this point we have bigger problems.
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'lib/ldb-samba')
-rw-r--r-- | lib/ldb-samba/ldb_wrap.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/lib/ldb-samba/ldb_wrap.c b/lib/ldb-samba/ldb_wrap.c index 9959b04ed95..8c3bf6f7bf3 100644 --- a/lib/ldb-samba/ldb_wrap.c +++ b/lib/ldb-samba/ldb_wrap.c @@ -329,20 +329,11 @@ int samba_ldb_connect(struct ldb_context *ldb, struct loadparm_context *lp_ctx, } /* - when we fork() we need to make sure that any open ldb contexts have - any open transactions cancelled (ntdb databases doesn't need reopening, - as we don't use clear_if_first). - */ + call tdb_reopen_all() in case there is a TDB open so we are + not blocked from re-opening it inside ldb_tdb. +*/ void ldb_wrap_fork_hook(void) { - struct ldb_wrap *w; - - for (w=ldb_wrap_list; w; w=w->next) { - if (ldb_transaction_cancel_noerr(w->ldb) != LDB_SUCCESS) { - smb_panic("Failed to cancel child transactions\n"); - } - } - if (tdb_reopen_all(1) != 0) { smb_panic("tdb_reopen_all failed\n"); } |