mirror of
https://github.com/systemd/systemd.git
synced 2026-08-03 06:30:30 +00:00
main: split out reading of /proc/sys/fs/nr_open into its own function
This doesn't really reduce the code size over all, but it does make main.c shorter and more readable, and that's always a good thing.
This commit is contained in:
@@ -930,3 +930,27 @@ int fd_reopen(int fd, int flags) {
|
||||
|
||||
return new_fd;
|
||||
}
|
||||
|
||||
int read_nr_open(void) {
|
||||
_cleanup_free_ char *nr_open = NULL;
|
||||
int r;
|
||||
|
||||
/* Returns the kernel's current fd limit, either by reading it of /proc/sys if that works, or using the
|
||||
* hard-coded default compiled-in value of current kernels (1M) if not. This call will never fail. */
|
||||
|
||||
r = read_one_line_file("/proc/sys/fs/nr_open", &nr_open);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to read /proc/sys/fs/nr_open, ignoring: %m");
|
||||
else {
|
||||
int v;
|
||||
|
||||
r = safe_atoi(nr_open, &v);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to parse /proc/sys/fs/nr_open value '%s', ignoring: %m", nr_open);
|
||||
else
|
||||
return v;
|
||||
}
|
||||
|
||||
/* If we fail, fallback to the hard-coded kernel limit of 1024 * 1024. */
|
||||
return 1024 * 1024;
|
||||
}
|
||||
|
||||
@@ -108,3 +108,5 @@ static inline int make_null_stdio(void) {
|
||||
})
|
||||
|
||||
int fd_reopen(int fd, int flags);
|
||||
|
||||
int read_nr_open(void);
|
||||
|
||||
Reference in New Issue
Block a user