SUNRPC: Run rpci->queue_timeout on the rpciod workqueue instead of generic

Signed-off-by: Trond Myklebust <[email protected]>
This commit is contained in:
Trond Myklebust 2006-03-20 13:44:08 -05:00
commit 24c5d9d7ea
3 changed files with 5 additions and 3 deletions

View file

@ -91,7 +91,8 @@ rpc_queue_upcall(struct inode *inode, struct rpc_pipe_msg *msg)
res = 0;
} else if (rpci->flags & RPC_PIPE_WAIT_FOR_OPEN) {
if (list_empty(&rpci->pipe))
schedule_delayed_work(&rpci->queue_timeout,
queue_delayed_work(rpciod_workqueue,
&rpci->queue_timeout,
RPC_UPCALL_TIMEOUT);
list_add_tail(&msg->list, &rpci->pipe);
rpci->pipelen += msg->len;
@ -132,7 +133,7 @@ rpc_close_pipes(struct inode *inode)
if (ops->release_pipe)
ops->release_pipe(inode);
cancel_delayed_work(&rpci->queue_timeout);
flush_scheduled_work();
flush_workqueue(rpciod_workqueue);
}
rpc_inode_setowner(inode, NULL);
mutex_unlock(&inode->i_mutex);

View file

@ -64,7 +64,7 @@ static LIST_HEAD(all_tasks);
*/
static DECLARE_MUTEX(rpciod_sema);
static unsigned int rpciod_users;
static struct workqueue_struct *rpciod_workqueue;
struct workqueue_struct *rpciod_workqueue;
/*
* Spinlock for other critical sections of code.