162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * linux/fs/nfs/sysctl.c
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Sysctl interface to NFS parameters
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#include <linux/types.h>
862306a36Sopenharmony_ci#include <linux/linkage.h>
962306a36Sopenharmony_ci#include <linux/ctype.h>
1062306a36Sopenharmony_ci#include <linux/fs.h>
1162306a36Sopenharmony_ci#include <linux/sysctl.h>
1262306a36Sopenharmony_ci#include <linux/module.h>
1362306a36Sopenharmony_ci#include <linux/nfs_fs.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistatic struct ctl_table_header *nfs_callback_sysctl_table;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistatic struct ctl_table nfs_cb_sysctls[] = {
1862306a36Sopenharmony_ci	{
1962306a36Sopenharmony_ci		.procname	= "nfs_mountpoint_timeout",
2062306a36Sopenharmony_ci		.data		= &nfs_mountpoint_expiry_timeout,
2162306a36Sopenharmony_ci		.maxlen		= sizeof(nfs_mountpoint_expiry_timeout),
2262306a36Sopenharmony_ci		.mode		= 0644,
2362306a36Sopenharmony_ci		.proc_handler	= proc_dointvec_jiffies,
2462306a36Sopenharmony_ci	},
2562306a36Sopenharmony_ci	{
2662306a36Sopenharmony_ci		.procname	= "nfs_congestion_kb",
2762306a36Sopenharmony_ci		.data		= &nfs_congestion_kb,
2862306a36Sopenharmony_ci		.maxlen		= sizeof(nfs_congestion_kb),
2962306a36Sopenharmony_ci		.mode		= 0644,
3062306a36Sopenharmony_ci		.proc_handler	= proc_dointvec,
3162306a36Sopenharmony_ci	},
3262306a36Sopenharmony_ci	{ }
3362306a36Sopenharmony_ci};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciint nfs_register_sysctl(void)
3662306a36Sopenharmony_ci{
3762306a36Sopenharmony_ci	nfs_callback_sysctl_table = register_sysctl("fs/nfs", nfs_cb_sysctls);
3862306a36Sopenharmony_ci	if (nfs_callback_sysctl_table == NULL)
3962306a36Sopenharmony_ci		return -ENOMEM;
4062306a36Sopenharmony_ci	return 0;
4162306a36Sopenharmony_ci}
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_civoid nfs_unregister_sysctl(void)
4462306a36Sopenharmony_ci{
4562306a36Sopenharmony_ci	unregister_sysctl_table(nfs_callback_sysctl_table);
4662306a36Sopenharmony_ci	nfs_callback_sysctl_table = NULL;
4762306a36Sopenharmony_ci}
48