private void closeUserRegions(final boolean abort) {
    this.onlineRegionsLock.writeLock().lock();
    try {
      for (Map.Entry<String, HRegion> e : this.onlineRegions.entrySet()) {
        HRegion r = e.getValue();
        if (!r.getRegionInfo().isMetaRegion() && r.isAvailable()) {
          // Don't update zk with this close transition; pass false.
          closeRegionIgnoreErrors(r.getRegionInfo(), abort);
        }
      }
    } finally {
      this.onlineRegionsLock.writeLock().unlock();
    }
  }
Schedule closes on all user regions. Should be safe calling multiple times because it wont'
close regions that are already closed or that are closing.
@param abort Whether we're running an abort.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java