linux/fs/nfs/nfs4sysctl.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * linux/fs/nfs/nfs4sysctl.c
   4 *
   5 * Sysctl interface to NFS v4 parameters
   6 *
   7 * Copyright (c) 2006 Trond Myklebust <Trond.Myklebust@netapp.com>
   8 */
   9#include <linux/sysctl.h>
  10#include <linux/nfs_fs.h>
  11
  12#include "nfs4_fs.h"
  13#include "nfs4idmap.h"
  14#include "callback.h"
  15
  16static const int nfs_set_port_min;
  17static const int nfs_set_port_max = 65535;
  18static struct ctl_table_header *nfs4_callback_sysctl_table;
  19
  20static struct ctl_table nfs4_cb_sysctls[] = {
  21        {
  22                .procname = "nfs_callback_tcpport",
  23                .data = &nfs_callback_set_tcpport,
  24                .maxlen = sizeof(int),
  25                .mode = 0644,
  26                .proc_handler = proc_dointvec_minmax,
  27                .extra1 = (int *)&nfs_set_port_min,
  28                .extra2 = (int *)&nfs_set_port_max,
  29        },
  30        {
  31                .procname = "idmap_cache_timeout",
  32                .data = &nfs_idmap_cache_timeout,
  33                .maxlen = sizeof(int),
  34                .mode = 0644,
  35                .proc_handler = proc_dointvec,
  36        },
  37        { }
  38};
  39
  40static struct ctl_table nfs4_cb_sysctl_dir[] = {
  41        {
  42                .procname = "nfs",
  43                .mode = 0555,
  44                .child = nfs4_cb_sysctls,
  45        },
  46        { }
  47};
  48
  49static struct ctl_table nfs4_cb_sysctl_root[] = {
  50        {
  51                .procname = "fs",
  52                .mode = 0555,
  53                .child = nfs4_cb_sysctl_dir,
  54        },
  55        { }
  56};
  57
  58int nfs4_register_sysctl(void)
  59{
  60        nfs4_callback_sysctl_table = register_sysctl_table(nfs4_cb_sysctl_root);
  61        if (nfs4_callback_sysctl_table == NULL)
  62                return -ENOMEM;
  63        return 0;
  64}
  65
  66void nfs4_unregister_sysctl(void)
  67{
  68        unregister_sysctl_table(nfs4_callback_sysctl_table);
  69        nfs4_callback_sysctl_table = NULL;
  70}
  71