diff options
author | Jeremy Allison <jra@samba.org> | 2002-01-14 19:34:28 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-01-14 19:34:28 +0000 |
commit | 5b2b9c25af28543e67762805d1387524cbb6c39d (patch) | |
tree | 66c25f98805728f9ea40df85a3f32889bcf7717a /source/smbd | |
parent | 682e7cd394c1e1cc9a83f7e8e5e3694e083946c4 (diff) | |
download | samba-5b2b9c25af28543e67762805d1387524cbb6c39d.tar.gz samba-5b2b9c25af28543e67762805d1387524cbb6c39d.tar.xz samba-5b2b9c25af28543e67762805d1387524cbb6c39d.zip |
Removed MAXSTATUS which was set incorrectly - thus causing tdb traversal
of the connections db on smbd startup. This should fix the Solaris large
load bug.... (fingers crossed).
Jeremy.
Diffstat (limited to 'source/smbd')
-rw-r--r-- | source/smbd/connection.c | 2 | ||||
-rw-r--r-- | source/smbd/server.c | 25 | ||||
-rw-r--r-- | source/smbd/service.c | 14 |
3 files changed, 14 insertions, 27 deletions
diff --git a/source/smbd/connection.c b/source/smbd/connection.c index c0eaf8187db..da904e0a04a 100644 --- a/source/smbd/connection.c +++ b/source/smbd/connection.c @@ -37,7 +37,7 @@ TDB_CONTEXT *conn_tdb_ctx(void) Delete a connection record. ****************************************************************************/ -BOOL yield_connection(connection_struct *conn,char *name,int max_connections) +BOOL yield_connection(connection_struct *conn,char *name) { struct connections_key key; TDB_DATA kbuf; diff --git a/source/smbd/server.c b/source/smbd/server.c index b8e9c2beae1..330feece916 100644 --- a/source/smbd/server.c +++ b/source/smbd/server.c @@ -494,7 +494,7 @@ void exit_server(char *reason) invalidate_all_vuids(); /* delete our entry in the connections database. */ - yield_connection(NULL,"",MAXSTATUS); + yield_connection(NULL,""); respond_to_all_remaining_local_messages(); decrement_smbd_process_count(); @@ -812,7 +812,7 @@ static void usage(char *pname) register_dmalloc_msgs(); /* Setup the main smbd so that we can get messages. */ - claim_connection(NULL,"",MAXSTATUS,True); + claim_connection(NULL,"",0,True); /* DO NOT ENABLE THIS TILL YOU COPE WITH KILLING THESE TASKS AND INETD @@ -828,21 +828,17 @@ static void usage(char *pname) * everything after this point is run after the fork() */ - if (!locking_init(0)) { + if (!locking_init(0)) exit(1); - } - if (!print_backend_init()) { + if (!print_backend_init()) exit(1); - } - if (!share_info_db_init()) { + if (!share_info_db_init()) exit(1); - } - if(!initialize_password_db(False)) { + if(!initialize_password_db(False)) exit(1); - } /* possibly reload the services file. */ reload_services(True); @@ -868,19 +864,16 @@ static void usage(char *pname) } /* Setup oplocks */ - if (!init_oplocks()) { + if (!init_oplocks()) exit(1); - } /* Setup mangle */ - if (!init_mangle_tdb()) { + if (!init_mangle_tdb()) exit(1); - } /* Setup change notify */ - if (!init_change_notify()) { + if (!init_change_notify()) exit(1); - } smbd_process(); diff --git a/source/smbd/service.c b/source/smbd/service.c index 8218ca2dc51..120868f24a4 100644 --- a/source/smbd/service.c +++ b/source/smbd/service.c @@ -588,9 +588,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password, ret = smbrun(cmd,NULL); if (ret != 0 && lp_rootpreexec_close(SNUM(conn))) { DEBUG(1,("root preexec gave %d - failing connection\n", ret)); - yield_connection(conn, - lp_servicename(SNUM(conn)), - lp_max_connections(SNUM(conn))); + yield_connection(conn, lp_servicename(SNUM(conn))); conn_free(conn); *status = NT_STATUS_UNSUCCESSFUL; return NULL; @@ -619,7 +617,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password, if (ret != 0 && lp_preexec_close(SNUM(conn))) { DEBUG(1,("preexec gave %d - failing connection\n", ret)); change_to_root_user(); - yield_connection(conn, lp_servicename(SNUM(conn)), lp_max_connections(SNUM(conn))); + yield_connection(conn, lp_servicename(SNUM(conn))); conn_free(conn); *status = NT_STATUS_UNSUCCESSFUL; return NULL; @@ -631,9 +629,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password, remote_machine, conn->client_address, conn->connectpath,strerror(errno))); change_to_root_user(); - yield_connection(conn, - lp_servicename(SNUM(conn)), - lp_max_connections(SNUM(conn))); + yield_connection(conn, lp_servicename(SNUM(conn))); conn_free(conn); *status = NT_STATUS_BAD_NETWORK_NAME; return NULL; @@ -713,9 +709,7 @@ void close_cnum(connection_struct *conn, uint16 vuid) } - yield_connection(conn, - lp_servicename(SNUM(conn)), - lp_max_connections(SNUM(conn))); + yield_connection(conn, lp_servicename(SNUM(conn))); file_close_conn(conn); dptr_closecnum(conn); |