aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2009-08-09 15:14:30 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-08-09 15:14:30 -0400
commit8854e82d9accc80f43c0bc3ff06b5979ac858185 (patch)
tree957a42c2959e52f9df2acd7a23c10bf5d6cbeaf0 /include
parent173912a6add00f4715774dcecf9ee53274c5924c (diff)
SUNRPC: Add an rpc_pipefs front end for the sunrpc cache code
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/sunrpc/cache.h13
-rw-r--r--include/linux/sunrpc/rpc_pipe_fs.h8
2 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h
index 8e5bf3036652..6f52b4d7c447 100644
--- a/include/linux/sunrpc/cache.h
+++ b/include/linux/sunrpc/cache.h
@@ -64,6 +64,10 @@ struct cache_detail_procfs {
64 struct proc_dir_entry *flush_ent, *channel_ent, *content_ent; 64 struct proc_dir_entry *flush_ent, *channel_ent, *content_ent;
65}; 65};
66 66
67struct cache_detail_pipefs {
68 struct dentry *dir;
69};
70
67struct cache_detail { 71struct cache_detail {
68 struct module * owner; 72 struct module * owner;
69 int hash_size; 73 int hash_size;
@@ -110,6 +114,7 @@ struct cache_detail {
110 114
111 union { 115 union {
112 struct cache_detail_procfs procfs; 116 struct cache_detail_procfs procfs;
117 struct cache_detail_pipefs pipefs;
113 } u; 118 } u;
114}; 119};
115 120
@@ -135,6 +140,10 @@ struct cache_deferred_req {
135}; 140};
136 141
137 142
143extern const struct file_operations cache_file_operations_pipefs;
144extern const struct file_operations content_file_operations_pipefs;
145extern const struct file_operations cache_flush_operations_pipefs;
146
138extern struct cache_head * 147extern struct cache_head *
139sunrpc_cache_lookup(struct cache_detail *detail, 148sunrpc_cache_lookup(struct cache_detail *detail,
140 struct cache_head *key, int hash); 149 struct cache_head *key, int hash);
@@ -186,6 +195,10 @@ extern void cache_purge(struct cache_detail *detail);
186extern int cache_register(struct cache_detail *cd); 195extern int cache_register(struct cache_detail *cd);
187extern void cache_unregister(struct cache_detail *cd); 196extern void cache_unregister(struct cache_detail *cd);
188 197
198extern int sunrpc_cache_register_pipefs(struct dentry *parent, const char *,
199 mode_t, struct cache_detail *);
200extern void sunrpc_cache_unregister_pipefs(struct cache_detail *);
201
189extern void qword_add(char **bpp, int *lp, char *str); 202extern void qword_add(char **bpp, int *lp, char *str);
190extern void qword_addhex(char **bpp, int *lp, char *buf, int blen); 203extern void qword_addhex(char **bpp, int *lp, char *buf, int blen);
191extern int qword_get(char **bpp, char *dest, int bufsize); 204extern int qword_get(char **bpp, char *dest, int bufsize);
diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
index 88332ef1e959..a92571a34556 100644
--- a/include/linux/sunrpc/rpc_pipe_fs.h
+++ b/include/linux/sunrpc/rpc_pipe_fs.h
@@ -47,6 +47,14 @@ extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
47struct rpc_clnt; 47struct rpc_clnt;
48extern struct dentry *rpc_create_client_dir(struct dentry *, struct qstr *, struct rpc_clnt *); 48extern struct dentry *rpc_create_client_dir(struct dentry *, struct qstr *, struct rpc_clnt *);
49extern int rpc_remove_client_dir(struct dentry *); 49extern int rpc_remove_client_dir(struct dentry *);
50
51struct cache_detail;
52extern struct dentry *rpc_create_cache_dir(struct dentry *,
53 struct qstr *,
54 mode_t umode,
55 struct cache_detail *);
56extern void rpc_remove_cache_dir(struct dentry *);
57
50extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *, 58extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *,
51 const struct rpc_pipe_ops *, int flags); 59 const struct rpc_pipe_ops *, int flags);
52extern int rpc_unlink(struct dentry *); 60extern int rpc_unlink(struct dentry *);