Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
* 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits) Remove commented-out code copied from NFS NFS: Switch from intr mount option to TASK_KILLABLE Add wait_for_completion_killable Add wait_event_killable Add schedule_timeout_killable Use mutex_lock_killable in vfs_readdir Add mutex_lock_killable Use lock_page_killable Add lock_page_killable Add fatal_signal_pending Add TASK_WAKEKILL exit: Use task_is_* signal: Use task_is_* sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL ptrace: Use task_is_* power: Use task_is_* wait: Use TASK_NORMAL proc/base.c: Use task_is_* proc/array.c: Use TASK_REPORT perfmon: Use task_is_* ... Fixed up conflicts in NFS/sunrpc manually..
This commit is contained in:
@@ -245,9 +245,9 @@ void rpc_init_wait_queue(struct rpc_wait_queue *queue, const char *qname)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rpc_init_wait_queue);
|
||||
|
||||
static int rpc_wait_bit_interruptible(void *word)
|
||||
static int rpc_wait_bit_killable(void *word)
|
||||
{
|
||||
if (signal_pending(current))
|
||||
if (fatal_signal_pending(current))
|
||||
return -ERESTARTSYS;
|
||||
schedule();
|
||||
return 0;
|
||||
@@ -299,9 +299,9 @@ static void rpc_mark_complete_task(struct rpc_task *task)
|
||||
int __rpc_wait_for_completion_task(struct rpc_task *task, int (*action)(void *))
|
||||
{
|
||||
if (action == NULL)
|
||||
action = rpc_wait_bit_interruptible;
|
||||
action = rpc_wait_bit_killable;
|
||||
return wait_on_bit(&task->tk_runstate, RPC_TASK_ACTIVE,
|
||||
action, TASK_INTERRUPTIBLE);
|
||||
action, TASK_KILLABLE);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__rpc_wait_for_completion_task);
|
||||
|
||||
@@ -696,10 +696,9 @@ static void __rpc_execute(struct rpc_task *task)
|
||||
|
||||
/* sync task: sleep here */
|
||||
dprintk("RPC: %5u sync task going to sleep\n", task->tk_pid);
|
||||
/* Note: Caller should be using rpc_clnt_sigmask() */
|
||||
status = out_of_line_wait_on_bit(&task->tk_runstate,
|
||||
RPC_TASK_QUEUED, rpc_wait_bit_interruptible,
|
||||
TASK_INTERRUPTIBLE);
|
||||
RPC_TASK_QUEUED, rpc_wait_bit_killable,
|
||||
TASK_KILLABLE);
|
||||
if (status == -ERESTARTSYS) {
|
||||
/*
|
||||
* When a sync task receives a signal, it exits with
|
||||
@@ -840,8 +839,6 @@ static void rpc_init_task(struct rpc_task *task, const struct rpc_task_setup *ta
|
||||
kref_get(&task->tk_client->cl_kref);
|
||||
if (task->tk_client->cl_softrtry)
|
||||
task->tk_flags |= RPC_TASK_SOFT;
|
||||
if (!task->tk_client->cl_intr)
|
||||
task->tk_flags |= RPC_TASK_NOINTR;
|
||||
}
|
||||
|
||||
if (task->tk_ops->rpc_call_prepare != NULL)
|
||||
|
Reference in New Issue
Block a user