linux/fs/nfs/sysctl.c
<<
>>
Prefs
   1/*
   2 * linux/fs/nfs/sysctl.c
   3 *
   4 * Sysctl interface to NFS parameters
   5 */
   6#include <linux/types.h>
   7#include <linux/linkage.h>
   8#include <linux/ctype.h>
   9#include <linux/fs.h>
  10#include <linux/sysctl.h>
  11#include <linux/module.h>
  12#include <linux/nfs_fs.h>
  13
  14static struct ctl_table_header *nfs_callback_sysctl_table;
  15
  16static struct ctl_table nfs_cb_sysctls[] = {
  17        {
  18                .procname       = "nfs_mountpoint_timeout",
  19                .data           = &nfs_mountpoint_expiry_timeout,
  20                .maxlen         = sizeof(nfs_mountpoint_expiry_timeout),
  21                .mode           = 0644,
  22                .proc_handler   = proc_dointvec_jiffies,
  23        },
  24        {
  25                .procname       = "nfs_congestion_kb",
  26                .data           = &nfs_congestion_kb,
  27                .maxlen         = sizeof(nfs_congestion_kb),
  28                .mode           = 0644,
  29                .proc_handler   = proc_dointvec,
  30        },
  31        { }
  32};
  33
  34static struct ctl_table nfs_cb_sysctl_dir[] = {
  35        {
  36                .procname = "nfs",
  37                .mode = 0555,
  38                .child = nfs_cb_sysctls,
  39        },
  40        { }
  41};
  42
  43static struct ctl_table nfs_cb_sysctl_root[] = {
  44        {
  45                .procname = "fs",
  46                .mode = 0555,
  47                .child = nfs_cb_sysctl_dir,
  48        },
  49        { }
  50};
  51
  52int nfs_register_sysctl(void)
  53{
  54        nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root);
  55        if (nfs_callback_sysctl_table == NULL)
  56                return -ENOMEM;
  57        return 0;
  58}
  59
  60void nfs_unregister_sysctl(void)
  61{
  62        unregister_sysctl_table(nfs_callback_sysctl_table);
  63        nfs_callback_sysctl_table = NULL;
  64}
  65