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:
@@ -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"));
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user