48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0-or-later
 | |
| /* FS-Cache statistics viewing interface
 | |
|  *
 | |
|  * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved.
 | |
|  * Written by David Howells (dhowells@redhat.com)
 | |
|  */
 | |
| 
 | |
| #define FSCACHE_DEBUG_LEVEL CACHE
 | |
| #include <linux/module.h>
 | |
| #include <linux/proc_fs.h>
 | |
| #include <linux/seq_file.h>
 | |
| #include "internal.h"
 | |
| 
 | |
| /*
 | |
|  * Add files to /proc/fs/netfs/.
 | |
|  */
 | |
| int __init fscache_proc_init(void)
 | |
| {
 | |
| 	if (!proc_symlink("fs/fscache", NULL, "netfs"))
 | |
| 		goto error_sym;
 | |
| 
 | |
| 	if (!proc_create_seq("fs/netfs/caches", S_IFREG | 0444, NULL,
 | |
| 			     &fscache_caches_seq_ops))
 | |
| 		goto error;
 | |
| 
 | |
| 	if (!proc_create_seq("fs/netfs/volumes", S_IFREG | 0444, NULL,
 | |
| 			     &fscache_volumes_seq_ops))
 | |
| 		goto error;
 | |
| 
 | |
| 	if (!proc_create_seq("fs/netfs/cookies", S_IFREG | 0444, NULL,
 | |
| 			     &fscache_cookies_seq_ops))
 | |
| 		goto error;
 | |
| 	return 0;
 | |
| 
 | |
| error:
 | |
| 	remove_proc_entry("fs/fscache", NULL);
 | |
| error_sym:
 | |
| 	return -ENOMEM;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Clean up the /proc/fs/fscache symlink.
 | |
|  */
 | |
| void fscache_proc_cleanup(void)
 | |
| {
 | |
| 	remove_proc_subtree("fs/fscache", NULL);
 | |
| }
 |