diff options
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r-- | net/sunrpc/sched.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 994cfea2bad6..1f19aa15f89b 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
@@ -300,8 +300,9 @@ EXPORT_SYMBOL_GPL(__rpc_wait_for_completion_task); | |||
300 | /* | 300 | /* |
301 | * Make an RPC task runnable. | 301 | * Make an RPC task runnable. |
302 | * | 302 | * |
303 | * Note: If the task is ASYNC, this must be called with | 303 | * Note: If the task is ASYNC, and is being made runnable after sitting on an |
304 | * the spinlock held to protect the wait queue operation. | 304 | * rpc_wait_queue, this must be called with the queue spinlock held to protect |
305 | * the wait queue operation. | ||
305 | */ | 306 | */ |
306 | static void rpc_make_runnable(struct rpc_task *task) | 307 | static void rpc_make_runnable(struct rpc_task *task) |
307 | { | 308 | { |
@@ -790,7 +791,9 @@ void rpc_execute(struct rpc_task *task) | |||
790 | 791 | ||
791 | static void rpc_async_schedule(struct work_struct *work) | 792 | static void rpc_async_schedule(struct work_struct *work) |
792 | { | 793 | { |
794 | current->flags |= PF_FSTRANS; | ||
793 | __rpc_execute(container_of(work, struct rpc_task, u.tk_work)); | 795 | __rpc_execute(container_of(work, struct rpc_task, u.tk_work)); |
796 | current->flags &= ~PF_FSTRANS; | ||
794 | } | 797 | } |
795 | 798 | ||
796 | /** | 799 | /** |