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 | 9e007457e4aa0ed8656782be1b8af42fc217614b (patch) | |
tree | b5295dc046a5bd25bc82080a6673325c2a87d7cf /source3/smbd | |
parent | 3353223b4766b0cc87bd1b4ed7f67bc52b2a7da3 (diff) | |
download | samba-9e007457e4aa0ed8656782be1b8af42fc217614b.tar.gz samba-9e007457e4aa0ed8656782be1b8af42fc217614b.tar.bz2 samba-9e007457e4aa0ed8656782be1b8af42fc217614b.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.
(This used to be commit 5b2b9c25af28543e67762805d1387524cbb6c39d)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/connection.c | 2 | ||||
-rw-r--r-- | source3/smbd/server.c | 25 | ||||
-rw-r--r-- | source3/smbd/service.c | 14 |
3 files changed, 14 insertions, 27 deletions
diff --git a/source3/smbd/connection.c b/source3/smbd/connection.c index c0eaf8187d..da904e0a04 100644 --- a/source3/smbd/connection.c +++ b/source3/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/source3/smbd/server.c b/source3/smbd/server.c index b8e9c2beae..330feece91 100644 --- a/source3/smbd/server.c +++ b/source3/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/source3/smbd/service.c b/source3/smbd/service.c index 8218ca2dc5..120868f24a 100644 --- a/source3/smbd/service.c +++ b/source3/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); |