private void deposePrimaryForColocatedChildren() {
    boolean deposedChildPrimaries = true;
    List<PartitionedRegion> colocatedChildPRs = ColocationHelper.getColocatedChildRegions(pRegion);
    if (colocatedChildPRs != null) {
      for (PartitionedRegion pr : colocatedChildPRs) {
        Bucket b = pr.getRegionAdvisor().getBucket(getBucket().getId());
        if (b != null) {
          BucketAdvisor ba = b.getBucketAdvisor();
          deposedChildPrimaries = ba.deposePrimary() && deposedChildPrimaries;
          if (b instanceof BucketRegionQueue) {
            BucketRegionQueue brq = (BucketRegionQueue) b;
            brq.decQueueSize(brq.size());
            brq.incSecondaryQueueSize(brq.size());
          }
        }
      }
    }
  }
This calls deposePrimary on every colocated child that is directly colocated to this bucket's
PR. Those each in turn do the same to their child buckets and so on before returning. Each
depose will send a dlock release message to the grantor, wait for reply, and then also send a
profile update.
<p>
Caller must synchronize on this BucketAdvisor.
geode-core/src/main/java/org/apache/geode/internal/cache/BucketAdvisor.java