mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
Added fix from "Eric Boehm" <boehm@nortelnetworks.com> to try and set hard
limit before setting soft limit. Jeremy. (This used to be commit a1eb2752a8bee9cc7d92c664c3de84e02620933d)
This commit is contained in:
parent
2ef68c7e92
commit
3c2c047e82
@ -1636,6 +1636,30 @@ int set_maxfiles(int requested_max)
|
||||
* which always returns RLIM_INFINITY for rlp.rlim_max.
|
||||
*/
|
||||
|
||||
/* Try raising the hard (max) limit to the requested amount. */
|
||||
|
||||
#if defined(RLIM_INFINITY)
|
||||
if (rlp.rlim_max != RLIM_INFINITY) {
|
||||
int orig_max = rlp.rlim_max;
|
||||
|
||||
if ( rlp.rlim_max < requested_max )
|
||||
rlp.rlim_max = requested_max;
|
||||
|
||||
/* This failing is not an error - many systems (Linux) don't
|
||||
support our default request of 10,000 open files. JRA. */
|
||||
|
||||
if(setrlimit(RLIMIT_NOFILE, &rlp)) {
|
||||
DEBUG(3,("set_maxfiles: setrlimit for RLIMIT_NOFILE for %d max files failed with error %s\n",
|
||||
(int)rlp.rlim_max, strerror(errno) ));
|
||||
|
||||
/* Set failed - restore original value from get. */
|
||||
rlp.rlim_max = orig_max;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Now try setting the soft (current) limit. */
|
||||
|
||||
saved_current_limit = rlp.rlim_cur = MIN(requested_max,rlp.rlim_max);
|
||||
|
||||
if(setrlimit(RLIMIT_NOFILE, &rlp)) {
|
||||
|
@ -134,7 +134,7 @@ initialise file structures
|
||||
|
||||
void file_init(void)
|
||||
{
|
||||
int request_max_open_files = lp_max_open_files();
|
||||
int request_max_open_files = lp_max_open_files();
|
||||
int real_lim;
|
||||
|
||||
/*
|
||||
@ -146,8 +146,8 @@ void file_init(void)
|
||||
|
||||
real_max_open_files = real_lim - MAX_OPEN_FUDGEFACTOR;
|
||||
|
||||
if(real_max_open_files != request_max_open_files) {
|
||||
DEBUG(1,("file_init: Information only: requested %d \
|
||||
if(real_max_open_files != request_max_open_files) {
|
||||
DEBUG(1,("file_init: Information only: requested %d \
|
||||
open files, %d are available.\n", request_max_open_files, real_max_open_files));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user