Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+3 -2
+3 -2
fs/afs/cmservice.c
··· 464 464 } 465 465 466 466 /* 467 - * allow the fileserver to quickly find out if the fileserver has been rebooted 467 + * Allow the fileserver to quickly find out if the cache manager has been 468 + * rebooted. 468 469 */ 469 470 static void SRXAFSCB_ProbeUuid(struct work_struct *work) 470 471 { ··· 537 536 538 537 if (!afs_check_call_state(call, AFS_CALL_SV_REPLYING)) 539 538 return afs_io_error(call, afs_io_error_cm_reply); 540 - return afs_find_cm_server_by_uuid(call, call->request); 539 + return afs_find_cm_server_by_peer(call); 541 540 } 542 541 543 542 /*