DAFS: Do not serialize state for invalid hosts
authorAndrew Deason <adeason@sinenomine.net>
Thu, 29 Sep 2011 19:49:53 +0000 (14:49 -0500)
committerDerrick Brashear <shadow@dementix.org>
Fri, 30 Sep 2011 23:56:44 +0000 (16:56 -0700)
commit5c6bd04211d587efde4b0915a62273aafb2d306b
tree421a15ce50f1657d5a9b08c2d19f3785101f930d
parent6e7b31ef0a69b8ea39e8acc474a7aab48f828d3d
DAFS: Do not serialize state for invalid hosts

When we serialize host information for DAFS during shutdown, we have
no guarantee that the host is in a valid state when we look at it.
This can result in a host being saved to disk when we are waiting for
the host to respond to an RPC, and so the information about the host
is invalid. For example, we can save a host that has the
HWHO_INPROGRESS flag set, and when it is restored later, this can
cause odd behavior since the flag is set but no thread is actually
waiting for the host to respond.

So instead, during state serialization, try to determine if a host may
be in an invalid state, and simply skip the host if it may.

Change-Id: I755640ea4ce607245ae98cc7455472ef781271e7
Reviewed-on: http://gerrit.openafs.org/5528
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/tviced/serialize_state.c
src/viced/host.c