1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-24 02:04:21 +03:00

We are triggering the cleanup_timeout_fn() too often, on exiting when an smbd is idle.

Calls to exit_server_cleanly() should be treated as a "clean" shutdown,
and not trigger the master smbd to call cleanup_timeout_fn.
This commit is contained in:
Jeremy Allison 2012-05-31 12:35:04 -07:00
parent 6718747268
commit f6e41026f8

View File

@ -84,7 +84,6 @@ static void exit_server_common(enum server_exit_reason how,
static void exit_server_common(enum server_exit_reason how,
const char *const reason)
{
bool had_open_conn = false;
struct smbXsrv_connection *conn = global_smbXsrv_connection;
struct smbd_server_connection *sconn = NULL;
struct messaging_context *msg_ctx = server_messaging_context();
@ -108,7 +107,7 @@ static void exit_server_common(enum server_exit_reason how,
bool found = false;
files_forall(sconn, log_writeable_file_fn, &found);
}
had_open_conn = conn_close_all(sconn);
(void)conn_close_all(sconn);
invalidate_all_vuids(sconn);
}
@ -183,6 +182,8 @@ static void exit_server_common(enum server_exit_reason how,
dump_core();
/* Notreached. */
exit(1);
} else {
DEBUG(3,("Server exit (%s)\n",
(reason ? reason : "normal exit")));
@ -192,15 +193,7 @@ static void exit_server_common(enum server_exit_reason how,
gencache_stabilize();
}
/* if we had any open SMB connections when we exited then we
need to tell the parent smbd so that it can trigger a retry
of any locks we may have been holding or open files we were
blocking */
if (had_open_conn) {
exit(1);
} else {
exit(0);
}
exit(0);
}
void exit_server(const char *const explanation)