afs: don't use PREPARE_WORK
authorTejun Heo <tj@kernel.org>
Fri, 7 Mar 2014 15:24:50 +0000 (10:24 -0500)
committerTejun Heo <tj@kernel.org>
Fri, 7 Mar 2014 15:24:50 +0000 (10:24 -0500)
commit059499453a9abd1857d442b44da8b4c126dc72a8
treedc3760562ee2238aaffbc7cdf84458dfb458e021
parent9ca9737444f1a8602f74b85018d881e7e54b5bd1
afs: don't use PREPARE_WORK

PREPARE_[DELAYED_]WORK() are being phased out.  They have few users
and a nasty surprise in terms of reentrancy guarantee as workqueue
considers work items to be different if they don't have the same work
function.

afs_call->async_work is multiplexed with multiple work functions.
Introduce afs_async_workfn() which invokes afs_call->async_workfn and
always use it as the work function and update the users to set the
->async_workfn field instead of overriding the work function using
PREPARE_WORK().

It would probably be best to route this with other related updates
through the workqueue tree.

Compile tested.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: David Howells <dhowells@redhat.com>
Cc: linux-afs@lists.infradead.org
fs/afs/internal.h
fs/afs/rxrpc.c