mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink
Rename /proc/fs/fscache to "netfs" and make a symlink from fscache to that. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> cc: Christian Brauner <christian@brauner.io> cc: linux-fsdevel@vger.kernel.org cc: linux-cachefs@redhat.com
This commit is contained in:
parent
4498a8eccc
commit
7eb5b3e3a0
@ -62,7 +62,7 @@ unsigned int fscache_hash(unsigned int salt, const void *data, size_t len)
|
||||
/*
|
||||
* initialise the fs caching module
|
||||
*/
|
||||
static int __init fscache_init(void)
|
||||
int __init fscache_init(void)
|
||||
{
|
||||
int ret = -ENOMEM;
|
||||
|
||||
@ -94,12 +94,10 @@ error_wq:
|
||||
return ret;
|
||||
}
|
||||
|
||||
fs_initcall(fscache_init);
|
||||
|
||||
/*
|
||||
* clean up on module removal
|
||||
*/
|
||||
static void __exit fscache_exit(void)
|
||||
void __exit fscache_exit(void)
|
||||
{
|
||||
_enter("");
|
||||
|
||||
@ -108,5 +106,3 @@ static void __exit fscache_exit(void)
|
||||
destroy_workqueue(fscache_wq);
|
||||
pr_notice("FS-Cache unloaded\n");
|
||||
}
|
||||
|
||||
module_exit(fscache_exit);
|
||||
|
@ -12,41 +12,34 @@
|
||||
#include "internal.h"
|
||||
|
||||
/*
|
||||
* initialise the /proc/fs/fscache/ directory
|
||||
* Add files to /proc/fs/netfs/.
|
||||
*/
|
||||
int __init fscache_proc_init(void)
|
||||
{
|
||||
if (!proc_mkdir("fs/fscache", NULL))
|
||||
goto error_dir;
|
||||
if (!proc_symlink("fs/fscache", NULL, "../netfs"))
|
||||
goto error_sym;
|
||||
|
||||
if (!proc_create_seq("fs/fscache/caches", S_IFREG | 0444, NULL,
|
||||
if (!proc_create_seq("fs/netfs/caches", S_IFREG | 0444, NULL,
|
||||
&fscache_caches_seq_ops))
|
||||
goto error;
|
||||
|
||||
if (!proc_create_seq("fs/fscache/volumes", S_IFREG | 0444, NULL,
|
||||
if (!proc_create_seq("fs/netfs/volumes", S_IFREG | 0444, NULL,
|
||||
&fscache_volumes_seq_ops))
|
||||
goto error;
|
||||
|
||||
if (!proc_create_seq("fs/fscache/cookies", S_IFREG | 0444, NULL,
|
||||
if (!proc_create_seq("fs/netfs/cookies", S_IFREG | 0444, NULL,
|
||||
&fscache_cookies_seq_ops))
|
||||
goto error;
|
||||
|
||||
#ifdef CONFIG_FSCACHE_STATS
|
||||
if (!proc_create_single("fs/fscache/stats", S_IFREG | 0444, NULL,
|
||||
fscache_stats_show))
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
remove_proc_entry("fs/fscache", NULL);
|
||||
error_dir:
|
||||
error_sym:
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/*
|
||||
* clean up the /proc/fs/fscache/ directory
|
||||
* Clean up the /proc/fs/fscache symlink.
|
||||
*/
|
||||
void fscache_proc_cleanup(void)
|
||||
{
|
||||
|
@ -52,7 +52,7 @@ EXPORT_SYMBOL(fscache_n_culled);
|
||||
/*
|
||||
* display the general statistics
|
||||
*/
|
||||
int fscache_stats_show(struct seq_file *m, void *v)
|
||||
int fscache_stats_show(struct seq_file *m)
|
||||
{
|
||||
seq_puts(m, "FS-Cache statistics\n");
|
||||
seq_printf(m, "Cookies: n=%d v=%d vcol=%u voom=%u\n",
|
||||
@ -96,7 +96,5 @@ int fscache_stats_show(struct seq_file *m, void *v)
|
||||
seq_printf(m, "IO : rd=%u wr=%u\n",
|
||||
atomic_read(&fscache_n_read),
|
||||
atomic_read(&fscache_n_write));
|
||||
|
||||
netfs_stats_show(m);
|
||||
return 0;
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ extern atomic_t netfs_n_rh_write_done;
|
||||
extern atomic_t netfs_n_rh_write_failed;
|
||||
extern atomic_t netfs_n_rh_write_zskip;
|
||||
|
||||
int netfs_stats_show(struct seq_file *m, void *v);
|
||||
|
||||
static inline void netfs_stat(atomic_t *stat)
|
||||
{
|
||||
@ -166,6 +167,13 @@ static inline void fscache_see_cookie(struct fscache_cookie *cookie,
|
||||
* fscache-main.c
|
||||
*/
|
||||
extern unsigned int fscache_hash(unsigned int salt, const void *data, size_t len);
|
||||
#ifdef CONFIG_FSCACHE
|
||||
int __init fscache_init(void);
|
||||
void __exit fscache_exit(void);
|
||||
#else
|
||||
static inline int fscache_init(void) { return 0; }
|
||||
static inline void fscache_exit(void) {}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fscache-proc.c
|
||||
@ -216,12 +224,14 @@ static inline void fscache_stat_d(atomic_t *stat)
|
||||
|
||||
#define __fscache_stat(stat) (stat)
|
||||
|
||||
int fscache_stats_show(struct seq_file *m, void *v);
|
||||
int fscache_stats_show(struct seq_file *m);
|
||||
#else
|
||||
|
||||
#define __fscache_stat(stat) (NULL)
|
||||
#define fscache_stat(stat) do {} while (0)
|
||||
#define fscache_stat_d(stat) do {} while (0)
|
||||
|
||||
static inline int fscache_stats_show(struct seq_file *m) { return 0; }
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include "internal.h"
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/netfs.h>
|
||||
@ -19,3 +21,34 @@ unsigned netfs_debug;
|
||||
module_param_named(debug, netfs_debug, uint, S_IWUSR | S_IRUGO);
|
||||
MODULE_PARM_DESC(netfs_debug, "Netfs support debugging mask");
|
||||
|
||||
static int __init netfs_init(void)
|
||||
{
|
||||
int ret = -ENOMEM;
|
||||
|
||||
if (!proc_mkdir("fs/netfs", NULL))
|
||||
goto error;
|
||||
|
||||
#ifdef CONFIG_FSCACHE_STATS
|
||||
if (!proc_create_single("fs/netfs/stats", S_IFREG | 0444, NULL,
|
||||
netfs_stats_show))
|
||||
goto error_proc;
|
||||
#endif
|
||||
|
||||
ret = fscache_init();
|
||||
if (ret < 0)
|
||||
goto error_proc;
|
||||
return 0;
|
||||
|
||||
error_proc:
|
||||
remove_proc_entry("fs/netfs", NULL);
|
||||
error:
|
||||
return ret;
|
||||
}
|
||||
fs_initcall(netfs_init);
|
||||
|
||||
static void __exit netfs_exit(void)
|
||||
{
|
||||
fscache_exit();
|
||||
remove_proc_entry("fs/netfs", NULL);
|
||||
}
|
||||
module_exit(netfs_exit);
|
||||
|
@ -28,31 +28,32 @@ atomic_t netfs_n_rh_write_done;
|
||||
atomic_t netfs_n_rh_write_failed;
|
||||
atomic_t netfs_n_rh_write_zskip;
|
||||
|
||||
void netfs_stats_show(struct seq_file *m)
|
||||
int netfs_stats_show(struct seq_file *m, void *v)
|
||||
{
|
||||
seq_printf(m, "RdHelp : RA=%u RP=%u WB=%u WBZ=%u rr=%u sr=%u\n",
|
||||
seq_printf(m, "Netfs : RA=%u RP=%u WB=%u WBZ=%u rr=%u sr=%u\n",
|
||||
atomic_read(&netfs_n_rh_readahead),
|
||||
atomic_read(&netfs_n_rh_readpage),
|
||||
atomic_read(&netfs_n_rh_write_begin),
|
||||
atomic_read(&netfs_n_rh_write_zskip),
|
||||
atomic_read(&netfs_n_rh_rreq),
|
||||
atomic_read(&netfs_n_rh_sreq));
|
||||
seq_printf(m, "RdHelp : ZR=%u sh=%u sk=%u\n",
|
||||
seq_printf(m, "Netfs : ZR=%u sh=%u sk=%u\n",
|
||||
atomic_read(&netfs_n_rh_zero),
|
||||
atomic_read(&netfs_n_rh_short_read),
|
||||
atomic_read(&netfs_n_rh_write_zskip));
|
||||
seq_printf(m, "RdHelp : DL=%u ds=%u df=%u di=%u\n",
|
||||
seq_printf(m, "Netfs : DL=%u ds=%u df=%u di=%u\n",
|
||||
atomic_read(&netfs_n_rh_download),
|
||||
atomic_read(&netfs_n_rh_download_done),
|
||||
atomic_read(&netfs_n_rh_download_failed),
|
||||
atomic_read(&netfs_n_rh_download_instead));
|
||||
seq_printf(m, "RdHelp : RD=%u rs=%u rf=%u\n",
|
||||
seq_printf(m, "Netfs : RD=%u rs=%u rf=%u\n",
|
||||
atomic_read(&netfs_n_rh_read),
|
||||
atomic_read(&netfs_n_rh_read_done),
|
||||
atomic_read(&netfs_n_rh_read_failed));
|
||||
seq_printf(m, "RdHelp : WR=%u ws=%u wf=%u\n",
|
||||
seq_printf(m, "Netfs : WR=%u ws=%u wf=%u\n",
|
||||
atomic_read(&netfs_n_rh_write),
|
||||
atomic_read(&netfs_n_rh_write_done),
|
||||
atomic_read(&netfs_n_rh_write_failed));
|
||||
return fscache_stats_show(m);
|
||||
}
|
||||
EXPORT_SYMBOL(netfs_stats_show);
|
||||
|
@ -294,7 +294,6 @@ void netfs_get_subrequest(struct netfs_io_subrequest *subreq,
|
||||
enum netfs_sreq_ref_trace what);
|
||||
void netfs_put_subrequest(struct netfs_io_subrequest *subreq,
|
||||
bool was_async, enum netfs_sreq_ref_trace what);
|
||||
void netfs_stats_show(struct seq_file *);
|
||||
ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
|
||||
struct iov_iter *new,
|
||||
iov_iter_extraction_t extraction_flags);
|
||||
|
Loading…
Reference in New Issue
Block a user