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:
parent
6718747268
commit
f6e41026f8
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user