1
0
mirror of https://github.com/samba-team/samba.git synced 2025-10-23 11:33:16 +03:00

s3: Refactor of madvise() usage in c441f58d

* move to reinit_after_fork() to protect all Samba daemons
* only protect parent processes
This commit is contained in:
Steven Danneman
2009-02-20 16:24:08 -08:00
parent 116ce19b10
commit 193be432a2
2 changed files with 7 additions and 7 deletions

View File

@@ -899,6 +899,13 @@ bool reinit_after_fork(struct messaging_context *msg_ctx,
* numbers as each other */
set_need_random_reseed();
#ifdef WITH_MADVISE_PROTECTED
/* Protect parent process from being killed by kernel when system
* memory is low. Child processes can still be killed */
if(!parent_longlived)
madvise(NULL,0,MADV_PROTECT);
#endif
/* tdb needs special fork handling */
if (tdb_reopen_all(parent_longlived ? 1 : 0) == -1) {
DEBUG(0,("tdb_reopen_all failed.\n"));

View File

@@ -359,10 +359,6 @@ static void smbd_accept_connection(struct tevent_context *ev,
/* Child code ... */
am_parent = 0;
#ifdef WITH_MADVISE_PROTECTED
madvise(NULL,0,MADV_PROTECT);
#endif
/* Stop zombies, the parent explicitly handles
* them, counting worker smbds. */
CatchChild();
@@ -1135,9 +1131,6 @@ extern void build_options(bool screen);
if (is_daemon && !interactive) {
DEBUG( 3, ( "Becoming a daemon.\n" ) );
become_daemon(Fork, no_process_group);
#ifdef WITH_MADVISE_PROTECTED
madvise(NULL,0,MADV_PROTECT);
#endif
}
#if HAVE_SETPGID