VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

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