private void acquirePrimaryForRestOfTheBucket() {
    List<FixedPartitionAttributesImpl> fpas = pRegion.getFixedPartitionAttributesImpl();
    if (fpas != null) {
      int bucketId = getBucket().getId();
      for (FixedPartitionAttributesImpl fpa : fpas) {
        if (fpa.getStartingBucketID() == bucketId) {
          for (int i = bucketId + 1; i <= fpa.getLastBucketID();) {
            Bucket b = regionAdvisor.getBucket(i++);
            if (b != null) {
              BucketAdvisor ba = b.getBucketAdvisor();
              ba.primaryMoveWriteLock.lock();
              try {
                if (ba.isHosting()) {
                  if (!ba.isPrimary()) {
                    ba.setVolunteering();
                    ba.acquiredPrimaryLock();
                  }
                }
              } finally {
                ba.primaryMoveWriteLock.unlock();
              }
            }
          }
        }
      }
    }
  }
Lazily gets the lock for acquiring primary lock. Caller must handle null. If DLS, Cache, or
DistributedSystem are shutting down then null will be returned. If DLS does not yet exist and
createDLS is false then null will be returned.

@param createDLS true will create DLS if it does not exist
@return distributed lock indicating primary member or null
geode-core/src/main/java/org/apache/geode/internal/cache/BucketAdvisor.java