]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit7b9429a5a5de80bd75c77392d921b5bccdd6a7e3
treed2716cea9442e5bdddca00c6bc840d8f6bb977d5
parent2d89fa160118f3737f8f0b3c6cfc66dca3a1cbcf
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: dede83ad4fd2 ("rxrpc: Don't expose skbs to in-kernel users [ver #2]")
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/cmservice.c