[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>
This commit is contained in:
Latchesar Ionkov
2006-01-08 01:04:58 -08:00
committed by Linus Torvalds
parent f5ef3c105b
commit 3cf6429a26
16 changed files with 1223 additions and 613 deletions

View File

@ -95,24 +95,21 @@ static int v9fs_dentry_validate(struct dentry *dentry, struct nameidata *nd)
void v9fs_dentry_release(struct dentry *dentry)
{
int err;
dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry);
if (dentry->d_fsdata != NULL) {
struct list_head *fid_list = dentry->d_fsdata;
struct v9fs_fid *temp = NULL;
struct v9fs_fid *current_fid = NULL;
struct v9fs_fcall *fcall = NULL;
list_for_each_entry_safe(current_fid, temp, fid_list, list) {
if (v9fs_t_clunk
(current_fid->v9ses, current_fid->fid, &fcall))
dprintk(DEBUG_ERROR, "clunk failed: %s\n",
FCALL_ERROR(fcall));
err = v9fs_t_clunk(current_fid->v9ses, current_fid->fid);
v9fs_put_idpool(current_fid->fid,
&current_fid->v9ses->fidpool);
if (err < 0)
dprintk(DEBUG_ERROR, "clunk failed: %d\n", err);
kfree(fcall);
v9fs_fid_destroy(current_fid);
}