|
@@ -58,6 +58,13 @@ static void afs_collect_incoming_call(struct work_struct *);
|
|
|
static struct sk_buff_head afs_incoming_calls;
|
|
|
static DECLARE_WORK(afs_collect_incoming_call_work, afs_collect_incoming_call);
|
|
|
|
|
|
+static void afs_async_workfn(struct work_struct *work)
|
|
|
+{
|
|
|
+ struct afs_call *call = container_of(work, struct afs_call, async_work);
|
|
|
+
|
|
|
+ call->async_workfn(work);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* open an RxRPC socket and bind it to be a server for callback notifications
|
|
|
* - the socket is left in blocking mode and non-blocking ops use MSG_DONTWAIT
|
|
@@ -348,7 +355,8 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
|
|
|
atomic_read(&afs_outstanding_calls));
|
|
|
|
|
|
call->wait_mode = wait_mode;
|
|
|
- INIT_WORK(&call->async_work, afs_process_async_call);
|
|
|
+ call->async_workfn = afs_process_async_call;
|
|
|
+ INIT_WORK(&call->async_work, afs_async_workfn);
|
|
|
|
|
|
memset(&srx, 0, sizeof(srx));
|
|
|
srx.srx_family = AF_RXRPC;
|
|
@@ -672,13 +680,6 @@ void afs_transfer_reply(struct afs_call *call, struct sk_buff *skb)
|
|
|
call->reply_size += len;
|
|
|
}
|
|
|
|
|
|
-static void afs_async_workfn(struct work_struct *work)
|
|
|
-{
|
|
|
- struct afs_call *call = container_of(work, struct afs_call, async_work);
|
|
|
-
|
|
|
- call->async_workfn(work);
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* accept the backlog of incoming calls
|
|
|
*/
|