afs: Fix handling of CB.ProbeUuid cache manager op

The AFS filesystem driver is handling the CB.ProbeUuid request incorrectly.
The UUID presented in the request is that of the cache manager, not the
fileserver, so afs_deliver_cb_probe_uuid() shouldn't be using that UUID to
look up the server.

Fix this by looking up the server by address instead.

Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
David Howells 2020-05-27 16:44:02 +01:00
parent 44746355cc
commit 3120c170ef

View File

@ -464,7 +464,8 @@ static int afs_deliver_cb_probe(struct afs_call *call)
}
/*
* allow the fileserver to quickly find out if the fileserver has been rebooted
* Allow the fileserver to quickly find out if the cache manager has been
* rebooted.
*/
static void SRXAFSCB_ProbeUuid(struct work_struct *work)
{
@ -536,7 +537,7 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
if (!afs_check_call_state(call, AFS_CALL_SV_REPLYING))
return afs_io_error(call, afs_io_error_cm_reply);
return afs_find_cm_server_by_uuid(call, call->request);
return afs_find_cm_server_by_peer(call);
}
/*