Files
linux/net
Trond Myklebust 77d77ab09b SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
commit 540a0f7584 upstream.

The problem is that for the case of priority queues, we
have to assume that __rpc_remove_wait_queue_priority will move new
elements from the tk_wait.links lists into the queue->tasks[] list.
We therefore cannot use list_for_each_entry_safe() on queue->tasks[],
since that will skip these new tasks that __rpc_remove_wait_queue_priority
is adding.

Without this fix, rpc_wake_up and rpc_wake_up_status will both fail
to wake up all functions on priority wait queues, which can result
in some nasty hangs.

Reported-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-02 09:27:17 -07:00
..
2011-05-23 16:29:24 -04:00
2011-04-17 00:48:31 -07:00
2011-11-11 09:36:45 -08:00
2011-07-19 11:25:04 -07:00
2012-03-23 11:20:51 -07:00
2011-05-24 01:13:12 -04:00
2011-05-24 01:13:12 -04:00
2011-05-24 01:13:12 -04:00
2012-02-29 16:34:07 -08:00
2011-05-24 01:13:12 -04:00
2011-05-05 11:10:14 -07:00
2011-04-29 10:20:53 -07:00