Gitweb: http://git.kernel.org/linus/8854e82d9accc80f43c0bc3ff06b5979ac858185
Commit: 8854e82d9accc80f43c0bc3ff06b5979ac858185
Parent: 173912a6add00f4715774dcecf9ee53274c5924c
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
AuthorDate: Sun Aug 9 15:14:30 2009 -0400
Committer: Trond Myklebust <Trond.Myklebust@netapp.com>
CommitDate: Sun Aug 9 15:14:30 2009 -0400
SUNRPC: Add an rpc_pipefs front end for the sunrpc cache code
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
include/linux/sunrpc/cache.h | 13 ++++
include/linux/sunrpc/rpc_pipe_fs.h | 8 ++
net/sunrpc/cache.c | 126 ++++++++++++++++++++++++++++++++++++
net/sunrpc/rpc_pipe.c | 43 ++++++++++++
4 files changed, 190 insertions(+), 0 deletions(-)
diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h
index 8e5bf30..6f52b4d 100644
--- a/include/linux/sunrpc/cache.h
+++ b/include/linux/sunrpc/cache.h
@@ -64,6 +64,10 @@ struct cache_detail_procfs {
struct proc_dir_entry *flush_ent, *channel_ent, *content_ent;
};
+struct cache_detail_pipefs {
+ struct dentry *dir;
+};
+
struct cache_detail {
struct module * owner;
int hash_size;
@@ -110,6 +114,7 @@ struct cache_detail {
union {
struct cache_detail_procfs procfs;
+ struct cache_detail_pipefs pipefs;
} u;
};
@@ -135,6 +140,10 @@ struct cache_deferred_req {
};
+extern const struct file_operations cache_file_operations_pipefs;
+extern const struct file_operations content_file_operations_pipefs;
+extern const struct file_operations cache_flush_operations_pipefs;
+
extern struct cache_head *
sunrpc_cache_lookup(struct cache_detail *detail,
struct cache_head *key, int hash);
@@ -186,6 +195,10 @@ extern void cache_purge(struct cache_detail *detail);
extern int cache_register(struct cache_detail *cd);
extern void cache_unregister(struct cache_detail *cd);
+extern int sunrpc_cache_register_pipefs(struct ...