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/vfs_dentry.c | |
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/vfs_dentry.c')
-rw-r--r-- | fs/9p/vfs_dentry.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/9p/vfs_dentry.c b/fs/9p/vfs_dentry.c index a6aa947de0f9..4887df767394 100644 --- a/fs/9p/vfs_dentry.c +++ b/fs/9p/vfs_dentry.c | |||
@@ -95,24 +95,21 @@ static int v9fs_dentry_validate(struct dentry *dentry, struct nameidata *nd) | |||
95 | 95 | ||
96 | void v9fs_dentry_release(struct dentry *dentry) | 96 | void v9fs_dentry_release(struct dentry *dentry) |
97 | { | 97 | { |
98 | int err; | ||
99 | |||
98 | dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); | 100 | dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); |
99 | 101 | ||
100 | if (dentry->d_fsdata != NULL) { | 102 | if (dentry->d_fsdata != NULL) { |
101 | struct list_head *fid_list = dentry->d_fsdata; | 103 | struct list_head *fid_list = dentry->d_fsdata; |
102 | struct v9fs_fid *temp = NULL; | 104 | struct v9fs_fid *temp = NULL; |
103 | struct v9fs_fid *current_fid = NULL; | 105 | struct v9fs_fid *current_fid = NULL; |
104 | struct v9fs_fcall *fcall = NULL; | ||
105 | 106 | ||
106 | list_for_each_entry_safe(current_fid, temp, fid_list, list) { | 107 | list_for_each_entry_safe(current_fid, temp, fid_list, list) { |
107 | if (v9fs_t_clunk | 108 | err = v9fs_t_clunk(current_fid->v9ses, current_fid->fid); |
108 | (current_fid->v9ses, current_fid->fid, &fcall)) | ||
109 | dprintk(DEBUG_ERROR, "clunk failed: %s\n", | ||
110 | FCALL_ERROR(fcall)); | ||
111 | 109 | ||
112 | v9fs_put_idpool(current_fid->fid, | 110 | if (err < 0) |
113 | ¤t_fid->v9ses->fidpool); | 111 | dprintk(DEBUG_ERROR, "clunk failed: %d\n", err); |
114 | 112 | ||
115 | kfree(fcall); | ||
116 | v9fs_fid_destroy(current_fid); | 113 | v9fs_fid_destroy(current_fid); |
117 | } | 114 | } |
118 | 115 | ||