From: Trond Myklebust Date: Mon, 19 Mar 2012 17:39:35 +0000 (-0400) Subject: SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() X-Git-Tag: v3.4-rc1~123^2~16 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=540a0f7584169651f485e8ab67461fcb06934e38;p=pandora-kernel.git SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() 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 Signed-off-by: Trond Myklebust Cc: stable@vger.kernel.org --- Reading git-diff-tree failed