SUNRPC: When changing the queue priority, ensure that we change the owner
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 27 Jan 2013 19:20:49 +0000 (14:20 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 Jan 2013 22:45:14 +0000 (17:45 -0500)
commitedd2e36fe8bd3cec4fa67e746d4c4a9246d0830e
treed44df6639a2431212bcb50f6117ba7b1083dc67d
parentab225417825963b6dc66be7ea80f94ac1378dfdf
SUNRPC: When changing the queue priority, ensure that we change the owner

This fixes a livelock in the xprt->sending queue where we end up never
making progress on lower priority tasks because sleep_on_priority()
keeps adding new tasks with the same owner to the head of the queue,
and priority bumps mean that we keep resetting the queue->owner to
whatever task is at the head of the queue.

Regression introduced by commit c05eecf636101dd4347b2d8fa457626bf0088e0a
(SUNRPC: Don't allow low priority tasks to pre-empt higher priority ones).

Reported-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/sched.c