diff options
author | Latchesar Ionkov <lucho@ionkov.net> | 2006-01-08 04:04:58 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-08 23:14:05 -0500 |
commit | 3cf6429a26da5c4d7b795e6d0f8f56ed2e4fdfc0 (patch) | |
tree | a8d856763fd9a0536519634c93ab92da684107fa /fs/9p/v9fs.h | |
parent | f5ef3c105bee3a52486d7b55cef3330fcde9bca6 (diff) |
[PATCH] v9fs: new multiplexer implementation
New multiplexer implementation. Decreases the number of kernel threads
required. Better handling when the user process receives a signal.
Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/9p/v9fs.h')
-rw-r--r-- | fs/9p/v9fs.h | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h index 45dcef42bdd6..f337da7a0eec 100644 --- a/fs/9p/v9fs.h +++ b/fs/9p/v9fs.h | |||
@@ -57,24 +57,14 @@ struct v9fs_session_info { | |||
57 | 57 | ||
58 | /* book keeping */ | 58 | /* book keeping */ |
59 | struct v9fs_idpool fidpool; /* The FID pool for file descriptors */ | 59 | struct v9fs_idpool fidpool; /* The FID pool for file descriptors */ |
60 | struct v9fs_idpool tidpool; /* The TID pool for transactions ids */ | ||
61 | 60 | ||
62 | /* transport information */ | ||
63 | struct v9fs_transport *transport; | 61 | struct v9fs_transport *transport; |
62 | struct v9fs_mux_data *mux; | ||
64 | 63 | ||
65 | int inprogress; /* session in progress => true */ | 64 | int inprogress; /* session in progress => true */ |
66 | int shutdown; /* session shutting down. no more attaches. */ | 65 | int shutdown; /* session shutting down. no more attaches. */ |
67 | unsigned char session_hung; | 66 | unsigned char session_hung; |
68 | 67 | struct dentry *debugfs_dir; | |
69 | /* mux private data */ | ||
70 | struct v9fs_fcall *curfcall; | ||
71 | wait_queue_head_t read_wait; | ||
72 | struct completion fcread; | ||
73 | struct completion proccmpl; | ||
74 | struct task_struct *recvproc; | ||
75 | |||
76 | spinlock_t muxlock; | ||
77 | struct list_head mux_fcalls; | ||
78 | }; | 68 | }; |
79 | 69 | ||
80 | /* possible values of ->proto */ | 70 | /* possible values of ->proto */ |
@@ -84,11 +74,14 @@ enum { | |||
84 | PROTO_FD, | 74 | PROTO_FD, |
85 | }; | 75 | }; |
86 | 76 | ||
77 | extern struct dentry *v9fs_debugfs_root; | ||
78 | |||
87 | int v9fs_session_init(struct v9fs_session_info *, const char *, char *); | 79 | int v9fs_session_init(struct v9fs_session_info *, const char *, char *); |
88 | struct v9fs_session_info *v9fs_inode2v9ses(struct inode *); | 80 | struct v9fs_session_info *v9fs_inode2v9ses(struct inode *); |
89 | void v9fs_session_close(struct v9fs_session_info *v9ses); | 81 | void v9fs_session_close(struct v9fs_session_info *v9ses); |
90 | int v9fs_get_idpool(struct v9fs_idpool *p); | 82 | int v9fs_get_idpool(struct v9fs_idpool *p); |
91 | void v9fs_put_idpool(int id, struct v9fs_idpool *p); | 83 | void v9fs_put_idpool(int id, struct v9fs_idpool *p); |
84 | int v9fs_check_idpool(int id, struct v9fs_idpool *p); | ||
92 | void v9fs_session_cancel(struct v9fs_session_info *v9ses); | 85 | void v9fs_session_cancel(struct v9fs_session_info *v9ses); |
93 | 86 | ||
94 | #define V9FS_MAGIC 0x01021997 | 87 | #define V9FS_MAGIC 0x01021997 |