afs: Fix CB.CallBack handling
authorDavid Howells <dhowells@redhat.com>
Fri, 11 May 2018 23:28:58 +0000 (00:28 +0100)
committerDavid Howells <dhowells@redhat.com>
Mon, 14 May 2018 14:15:19 +0000 (15:15 +0100)
commit428edade4e6c70e5b51fcd4188d944fbb744d84c
treed2716cea9442e5bdddca00c6bc840d8f6bb977d5
parent68251f0a6818f3be19b1471f36c956ca97c1427d
afs: Fix CB.CallBack handling

The handling of CB.CallBack messages sent by the fileserver to the client
is broken in that they are currently being processed after the reply has
been transmitted.

This is not what the fileserver expects, however.  It holds up change
visibility until the reply comes so as to maintain cache coherency, and so
expects the client to have to refetch the state on the affected files.

Fix CB.CallBack handling to perform the callback break before sending the
reply.

The fileserver is free to hold up status fetches issued by other threads on
the same client that occur in reponse to the callback until any pending
changes have been committed.

Fixes: d001648ec7cf ("rxrpc: Don't expose skbs to in-kernel users [ver #2]")
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/cmservice.c