From: Jeffrey Altman Date: Mon, 22 Aug 2011 13:00:47 +0000 (-0400) Subject: Windows: avoid cm_serverLock refcount leak X-Git-Tag: upstream/1.6.1.pre1^2~252 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1d4bc784854e5980711e6cc72b06c7ab5f203e17;p=packages%2Fo%2Fopenafs.git Windows: avoid cm_serverLock refcount leak Reviewed-on: http://gerrit.openafs.org/5293 Reviewed-by: Derrick Brashear Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit add66023a05bf9a380eef34bd4fcc80d343fffad) Change-Id: I021a7c77c5351914c9450bd7b28c2b6142f18567 Reviewed-on: http://gerrit.openafs.org/5295 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index 187ba2be1..93aceea5b 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -1272,10 +1272,12 @@ cm_CheckOfflineVolumeState(cm_volume_t *volp, cm_vol_state_t *statep, afs_uint32 cm_VolumeStatusNotification(volp, statep->ID, statep->state, vl_alldown); statep->state = vl_alldown; } - } else if (statep->state != vl_alldown) { + } else { lock_ReleaseRead(&cm_serverLock); - cm_VolumeStatusNotification(volp, statep->ID, statep->state, vl_alldown); - statep->state = vl_alldown; + if (statep->state != vl_alldown) { + cm_VolumeStatusNotification(volp, statep->ID, statep->state, vl_alldown); + statep->state = vl_alldown; + } } } }