OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman

Fri, 30 Jul 2004 16:02:59 EDT

Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-tree/src/WINNT/afsd

Modified Files:
	cm_callback.c cm_cell.c cm_conn.c cm_conn.h cm_dcache.c 
	cm_ioctl.c cm_server.c cm_server.h cm_vnodeops.c cm_volume.c 
Log Message:
DELTA 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.

--- DELTA config follows ---
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_callback.c 1.15 1.16
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_cell.c 1.12 1.13
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_conn.c 1.22 1.23
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_conn.h 1.6 1.7
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_dcache.c 1.9 1.10
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_ioctl.c 1.30 1.31
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_server.c 1.9 1.10
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_server.h 1.4 1.5
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_vnodeops.c 1.18 1.19
server-list-and-volume-updates-20040730 openafs/src/WINNT/afsd/cm_volume.c 1.6 1.7