diff options
author | David Howells <dhowells@redhat.com> | 2017-07-05 11:25:37 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-07-11 06:08:58 -0400 |
commit | c4fac9100456995c10b65c13be84554258ed7fc8 (patch) | |
tree | ea395c955dfac2337eff1a4608caea5f3a26701b /include/net/9p | |
parent | 86a1da6d30ad727c2a9cc5d6a51bff6d830036b5 (diff) |
9p: Implement show_options
Implement the show_options superblock op for 9p as part of a bid to get
rid of s_options and generic_show_options() to make it easier to implement
a context-based mount where the mount options can be passed individually
over a file descriptor.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Eric Van Hensbergen <ericvh@gmail.com>
cc: Ron Minnich <rminnich@sandia.gov>
cc: Latchesar Ionkov <lucho@ionkov.net>
cc: v9fs-developer@lists.sourceforge.net
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/net/9p')
-rw-r--r-- | include/net/9p/client.h | 13 | ||||
-rw-r--r-- | include/net/9p/transport.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index b582339ccef5..7af9d769b97d 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
@@ -157,6 +157,18 @@ struct p9_client { | |||
157 | enum p9_trans_status status; | 157 | enum p9_trans_status status; |
158 | void *trans; | 158 | void *trans; |
159 | 159 | ||
160 | union { | ||
161 | struct { | ||
162 | int rfd; | ||
163 | int wfd; | ||
164 | } fd; | ||
165 | struct { | ||
166 | u16 port; | ||
167 | bool privport; | ||
168 | |||
169 | } tcp; | ||
170 | } trans_opts; | ||
171 | |||
160 | struct p9_idpool *fidpool; | 172 | struct p9_idpool *fidpool; |
161 | struct list_head fidlist; | 173 | struct list_head fidlist; |
162 | 174 | ||
@@ -213,6 +225,7 @@ struct p9_dirent { | |||
213 | 225 | ||
214 | struct iov_iter; | 226 | struct iov_iter; |
215 | 227 | ||
228 | int p9_show_client_options(struct seq_file *m, struct p9_client *clnt); | ||
216 | int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb); | 229 | int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb); |
217 | int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid, | 230 | int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid, |
218 | const char *name); | 231 | const char *name); |
diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h index 5122b5e40f78..1625fb842ac4 100644 --- a/include/net/9p/transport.h +++ b/include/net/9p/transport.h | |||
@@ -62,6 +62,7 @@ struct p9_trans_module { | |||
62 | int (*cancelled)(struct p9_client *, struct p9_req_t *req); | 62 | int (*cancelled)(struct p9_client *, struct p9_req_t *req); |
63 | int (*zc_request)(struct p9_client *, struct p9_req_t *, | 63 | int (*zc_request)(struct p9_client *, struct p9_req_t *, |
64 | struct iov_iter *, struct iov_iter *, int , int, int); | 64 | struct iov_iter *, struct iov_iter *, int , int, int); |
65 | int (*show_options)(struct seq_file *, struct p9_client *); | ||
65 | }; | 66 | }; |
66 | 67 | ||
67 | void v9fs_register_trans(struct p9_trans_module *m); | 68 | void v9fs_register_trans(struct p9_trans_module *m); |