Windows: AFSVolumeCB track RefCount reasons
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 4 Feb 2013 20:14:16 +0000 (15:14 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Wed, 6 Feb 2013 05:14:05 +0000 (21:14 -0800)
commitd0e7d8c76e038c5bd76b49fd8ca7b588e848a4f1
treebc24a63ff28ef307a6e2cb0df6c03620707a4ae0
parent20a54b02521b40b07e4ec87df55a1e9a2549c881
Windows: AFSVolumeCB track RefCount reasons

Introduct AFSVolumeIncrement and AFSVolumeDecrement functions
which are used to increment not only the AFSVolumeCB.VolumeReferenceCount
but also a new VolumeReferences[Reason] counter.  In the future when
a VolumeReferenceCount error occurs it may be possible to isolate the
cause to a subset of the code.

In the process, the VolumeReferenceCount necessary to free the
AFSVolumeCB object is changed from 1 to 0 and AFSInitVolume no longer
initializes the AFSVolumeCB count to 2.

The signature for AFSInitVolume and AFSLocateNameEntry are modified
to permit a volume reference reason to be provided.  This permits
the reference to be allocated in one function and released in another
without resulting in count imbalances.

Change-Id: I021a6efe061817ff044c18a699ee63a7ffbfc7bf
Reviewed-on: http://gerrit.openafs.org/9067
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp
src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp
src/WINNT/afsrdr/kernel/lib/AFSFcbSupport.cpp
src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp
src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp
src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp
src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h
src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h
src/WINNT/afsrdr/kernel/lib/Include/AFSStructs.h