Fileserver capabilities support for the UNIX client
authorFelix Frank <Felix.Frank@Desy.de>
Thu, 4 Mar 2010 03:41:15 +0000 (22:41 -0500)
committerDerrick Brashear <shadow@dementia.org>
Tue, 13 Apr 2010 11:30:25 +0000 (04:30 -0700)
commit523d39f020f551e59b0f369c8480fa13b90db277
treeda3515221d9cd9add01f0c265f7fbb9d18940cfc
parent3f09a3cbd30feea0add9e288380a32bba8230e0f
Fileserver capabilities support for the UNIX client

The attached patch has the client perform a GetCapabilities RPC
on fileservers it encounters.
It uses an additional server flag bit to keep track of the servers that
have been queried already.

In the case of afs_CeckServers(), GetTime RPCs are largely replaced by
GetCapabilities. GetTime is performed on a server if and only if
afs_setTime is nonzero and either
(a) no setTimeHost has yet been determined or
(b) the server in question has been designated as setTimeHost
The GetServers() function could thus be simplified even further wrt. the
setTime mechanism, but doing so would imply more rewriting (violating
the KISS principle; a followup patch should deal with that).

When a client is asked to reset callback states, it also resets the
"capabilites known" bit.

Thanks go to Simon Wilkinson, Jeffrey Altman and Jeffrey Hutzelman for
input regarding logic and implementation details.

FIXES 124972

Change-Id: I4e22db3c5ca71f00e8c77f337e38daa0fa5b9124
Reviewed-on: http://gerrit.openafs.org/1640
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/afs/afs.h
src/afs/afs_callback.c
src/afs/afs_prototypes.h
src/afs/afs_server.c