diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-06-13 16:29:25 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-06-13 16:29:25 +0000 |
commit | db7d4daea91e105e3859cf461d7e53b9b77454b2 (patch) | |
tree | 9bb65b95440af09e8aca63abe56970dd3360cc57 /net/sunrpc/sched.c | |
parent | 9c1c01ead627bdda9211c9abd5b758d6c687d8ac (diff) |
Merge with Linux 2.2.8.
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r-- | net/sunrpc/sched.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 9d4bcb118..222a3f9ec 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -174,6 +174,7 @@ rpc_make_runnable(struct rpc_task *task) printk(KERN_ERR "RPC: task w/ running timer in rpc_make_runnable!!\n"); return; } + task->tk_flags |= RPC_TASK_RUNNING; if (RPC_IS_ASYNC(task)) { int status; status = rpc_add_wait_queue(&schedq, task); @@ -186,7 +187,6 @@ rpc_make_runnable(struct rpc_task *task) } else { wake_up(&task->tk_wait); } - task->tk_flags |= RPC_TASK_RUNNING; } @@ -447,7 +447,10 @@ __rpc_execute(struct rpc_task *task) task->tk_pid); if (current->pid == rpciod_pid) printk(KERN_ERR "RPC: rpciod waiting on sync task!\n"); - sleep_on(&task->tk_wait); + + sti(); + __wait_event(task->tk_wait, RPC_IS_RUNNING(task)); + cli(); /* * When the task received a signal, remove from @@ -1000,8 +1003,8 @@ void rpc_show_tasks(void) wreq->wb_flags, wreq->wb_pid, wreq->wb_page, wreq->wb_offset, wreq->wb_bytes); printk(" name=%s/%s\n", - wreq->wb_dentry->d_parent->d_name.name, - wreq->wb_dentry->d_name.name); + wreq->wb_file->f_dentry->d_parent->d_name.name, + wreq->wb_file->f_dentry->d_name.name); } } #endif |