root/fs/fscache/proc.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. fscache_proc_init
  2. fscache_proc_cleanup

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /* FS-Cache statistics viewing interface
   3  *
   4  * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   5  * Written by David Howells (dhowells@redhat.com)
   6  */
   7 
   8 #define FSCACHE_DEBUG_LEVEL OPERATION
   9 #include <linux/module.h>
  10 #include <linux/proc_fs.h>
  11 #include <linux/seq_file.h>
  12 #include "internal.h"
  13 
  14 /*
  15  * initialise the /proc/fs/fscache/ directory
  16  */
  17 int __init fscache_proc_init(void)
  18 {
  19         _enter("");
  20 
  21         if (!proc_mkdir("fs/fscache", NULL))
  22                 goto error_dir;
  23 
  24 #ifdef CONFIG_FSCACHE_STATS
  25         if (!proc_create_single("fs/fscache/stats", S_IFREG | 0444, NULL,
  26                         fscache_stats_show))
  27                 goto error_stats;
  28 #endif
  29 
  30 #ifdef CONFIG_FSCACHE_HISTOGRAM
  31         if (!proc_create_seq("fs/fscache/histogram", S_IFREG | 0444, NULL,
  32                          &fscache_histogram_ops))
  33                 goto error_histogram;
  34 #endif
  35 
  36 #ifdef CONFIG_FSCACHE_OBJECT_LIST
  37         if (!proc_create("fs/fscache/objects", S_IFREG | 0444, NULL,
  38                          &fscache_objlist_fops))
  39                 goto error_objects;
  40 #endif
  41 
  42         _leave(" = 0");
  43         return 0;
  44 
  45 #ifdef CONFIG_FSCACHE_OBJECT_LIST
  46 error_objects:
  47 #endif
  48 #ifdef CONFIG_FSCACHE_HISTOGRAM
  49         remove_proc_entry("fs/fscache/histogram", NULL);
  50 error_histogram:
  51 #endif
  52 #ifdef CONFIG_FSCACHE_STATS
  53         remove_proc_entry("fs/fscache/stats", NULL);
  54 error_stats:
  55 #endif
  56         remove_proc_entry("fs/fscache", NULL);
  57 error_dir:
  58         _leave(" = -ENOMEM");
  59         return -ENOMEM;
  60 }
  61 
  62 /*
  63  * clean up the /proc/fs/fscache/ directory
  64  */
  65 void fscache_proc_cleanup(void)
  66 {
  67 #ifdef CONFIG_FSCACHE_OBJECT_LIST
  68         remove_proc_entry("fs/fscache/objects", NULL);
  69 #endif
  70 #ifdef CONFIG_FSCACHE_HISTOGRAM
  71         remove_proc_entry("fs/fscache/histogram", NULL);
  72 #endif
  73 #ifdef CONFIG_FSCACHE_STATS
  74         remove_proc_entry("fs/fscache/stats", NULL);
  75 #endif
  76         remove_proc_entry("fs/fscache", NULL);
  77 }

/* [<][>][^][v][top][bottom][index][help] */