| From 6e2f78948403a4cce45b9e34311c9577c624f066 Mon Sep 17 00:00:00 2001 |
| From: Lennart Poettering <lennart@poettering.net> |
| Date: Mon, 17 Jun 2019 10:51:25 +0200 |
| Subject: [PATCH] core: set fs.file-max sysctl to LONG_MAX rather than |
| ULONG_MAX |
| |
| Since kernel 5.2 the kernel thankfully returns proper errors when we |
| write a value out of range to the sysctl. Which however breaks writing |
| ULONG_MAX to request the maximum value. Hence let's write the new |
| maximum value instead, LONG_MAX. |
| |
| /cc @brauner |
| |
| Fixes: #12803 |
| |
| Upstream-Status: Backport |
| |
| Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> |
| --- |
| src/core/main.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/src/core/main.c b/src/core/main.c |
| index b33ea1b5b5..e7f51815f0 100644 |
| --- a/src/core/main.c |
| +++ b/src/core/main.c |
| @@ -1245,9 +1245,9 @@ static void bump_file_max_and_nr_open(void) { |
| #endif |
| |
| #if BUMP_PROC_SYS_FS_FILE_MAX |
| - /* I so wanted to use STRINGIFY(ULONG_MAX) here, but alas we can't as glibc/gcc define that as |
| - * "(0x7fffffffffffffffL * 2UL + 1UL)". Seriously. 😢 */ |
| - if (asprintf(&t, "%lu\n", ULONG_MAX) < 0) { |
| + /* The maximum the kernel allows for this since 5.2 is LONG_MAX, use that. (Previously thing where |
| + * different but the operation would fail silently.) */ |
| + if (asprintf(&t, "%li\n", LONG_MAX) < 0) { |
| log_oom(); |
| return; |
| } |