server-list-and-volume-updates-
20040730
As discovered previously, the cm_serverRef_t objects were not reference
counted. This resulted in the objects being freed while they were
still in use. This patch adds reference counting to the cm_serverRef_t
objects which are locked using the cm_serverLock.
Once the reference counting was fixed it became immediately obvious
that cm_VolumeUpdates could not succeed in altering the state of a
server list from ALLOFFLINE to NOTBUSY. cm_VolumeUpdate calls cm_Analyze
without a fid_t object which was required to obtain the server list for
the affected volume. Of course, cm_VolumeUpdate has a pointer to the
volume so cm_Analyze was updated to take an optional pointer to a
cm_serverRef_t which avoids the need for the fid_t object.