From a63844e10e3e498c1c1e8457d50eb6ab1e6510cf Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 31 Oct 2002 23:41:00 +0000 Subject: Fix slowdown because of enumerating all print queues on every smbd startup. Jeremy. (This used to be commit 6efd17ef78ebcfed1130312fa019d674e4663a00) --- source3/printing/nt_printing.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source3/printing/nt_printing.c') diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index 6e4bb1e977..7b19b74025 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -252,7 +252,7 @@ static BOOL upgrade_to_version_3(void) } /**************************************************************************** - Open the NT printing tdb. + Open the NT printing tdbs. Done once before fork(). ****************************************************************************/ BOOL nt_printing_init(void) @@ -263,6 +263,8 @@ BOOL nt_printing_init(void) if (tdb_drivers && tdb_printers && tdb_forms && local_pid == sys_getpid()) return True; + if (tdb_drivers) + tdb_close(tdb_drivers); tdb_drivers = tdb_open_log(lock_path("ntdrivers.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600); if (!tdb_drivers) { DEBUG(0,("nt_printing_init: Failed to open nt drivers database %s (%s)\n", @@ -270,6 +272,8 @@ BOOL nt_printing_init(void) return False; } + if (tdb_printers) + tdb_close(tdb_printers); tdb_printers = tdb_open_log(lock_path("ntprinters.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600); if (!tdb_printers) { DEBUG(0,("nt_printing_init: Failed to open nt printers database %s (%s)\n", @@ -277,6 +281,8 @@ BOOL nt_printing_init(void) return False; } + if (tdb_forms) + tdb_close(tdb_forms); tdb_forms = tdb_open_log(lock_path("ntforms.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600); if (!tdb_forms) { DEBUG(0,("nt_printing_init: Failed to open nt forms database %s (%s)\n", -- cgit