Messages in this thread Patch in this message | | | Date | Wed, 11 Oct 2023 21:24:21 +0300 | From | Alexey Dobriyan <> | Subject | [PATCH] fs: move and constify sysctl_nr_open_min, sysctl_nr_open_max |
| |
sysctl_nr_open_min, sysctl_nr_open_max variables are really hard limits on fs.nr_open sysctl, they aren't interesting to the rest of the code and are constants (sysctl_nr_open is not constant obviously).
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> ---
fs/file.c | 5 ----- fs/file_table.c | 10 ++++++++-- include/linux/file.h | 2 -- 3 files changed, 8 insertions(+), 9 deletions(-)
--- a/fs/file.c +++ b/fs/file.c @@ -25,11 +25,6 @@ #include "internal.h" unsigned int sysctl_nr_open __read_mostly = 1024*1024; -unsigned int sysctl_nr_open_min = BITS_PER_LONG; -/* our min() is unusable in constant expressions ;-/ */ -#define __const_min(x, y) ((x) < (y) ? (x) : (y)) -unsigned int sysctl_nr_open_max = - __const_min(INT_MAX, ~(size_t)0/sizeof(void *)) & -BITS_PER_LONG; static void __free_fdtable(struct fdtable *fdt) { --- a/fs/file_table.c +++ b/fs/file_table.c @@ -111,6 +111,12 @@ static int proc_nr_files(struct ctl_table *table, int write, void *buffer, return proc_doulongvec_minmax(table, write, buffer, lenp, ppos); } +static const unsigned int sysctl_nr_open_min = BITS_PER_LONG; +/* our min() is unusable in constant expressions ;-/ */ +#define __const_min(x, y) ((x) < (y) ? (x) : (y)) +static const unsigned int sysctl_nr_open_max = + __const_min(INT_MAX, ~(size_t)0/sizeof(void *)) & -BITS_PER_LONG; + static struct ctl_table fs_stat_sysctls[] = { { .procname = "file-nr", @@ -134,8 +140,8 @@ static struct ctl_table fs_stat_sysctls[] = { .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, - .extra1 = &sysctl_nr_open_min, - .extra2 = &sysctl_nr_open_max, + .extra1 = (void *)&sysctl_nr_open_min, + .extra2 = (void *)&sysctl_nr_open_max, }, { } }; --- a/include/linux/file.h +++ b/include/linux/file.h @@ -113,6 +113,4 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags); extern void flush_delayed_fput(void); extern void __fput_sync(struct file *); -extern unsigned int sysctl_nr_open_min, sysctl_nr_open_max; - #endif /* __LINUX_FILE_H */
| |