*/
lock_ObtainRead(&cm_volumeLock);
for (volp = cm_data.allVolumesp; volp; volp=volp->allNextp) {
- InterlockedIncrement(&volp->refCount);
+ cm_GetVolume(volp);
lock_ReleaseRead(&cm_volumeLock);
if (!(volp->flags & CM_VOLUMEFLAG_RESET) ||
}
lock_ObtainRead(&cm_volumeLock);
- refCount = InterlockedDecrement(&volp->refCount);
- osi_assertx(refCount >= 0, "cm_volume_t refCount underflow");
+ cm_PutVolume(volp);
}
lock_ReleaseRead(&cm_volumeLock);
}
*/
if ((volp->qflags & CM_VOLUME_QFLAG_IN_HASH) &&
!(volp->flags & CM_VOLUMEFLAG_NOEXIST)) {
- InterlockedIncrement(&volp->refCount);
+ cm_GetVolume(volp);
lock_ReleaseRead(&cm_volumeLock);
cm_CheckOfflineVolume(volp, 0);
lock_ObtainRead(&cm_volumeLock);
- refCount = InterlockedDecrement(&volp->refCount);
- osi_assertx(refCount >= 0, "cm_volume_t refCount underflow");
+ cm_PutVolume(volp);
}
}
lock_ReleaseRead(&cm_volumeLock);
for(volp = cm_data.allVolumesp; volp; volp=volp->allNextp)
{
code = 1 ; /* assume that list is unchanged */
- InterlockedIncrement(&volp->refCount);
+ cm_GetVolume(volp);
lock_ReleaseRead(&cm_volumeLock);
lock_ObtainWrite(&volp->rw);
lock_ReleaseWrite(&volp->rw);
lock_ObtainRead(&cm_volumeLock);
- refCount = InterlockedDecrement(&volp->refCount);
- osi_assertx(refCount >= 0, "cm_volume_t refCount underflow");
+ cm_PutVolume(volp);
}
lock_ReleaseRead(&cm_volumeLock);
}