'Increases ring partition power by one.
Devices will be assigned to partitions like this:
OLD: 0, 3, 7, 5, 2, 1, ...
NEW: 0, 0, 3, 3, 7, 7, 5, 5, 2, 2, 1, 1, ...
:returns: False if next_part_power was not set or is equal to current
part_power, None if something went wrong, otherwise True.'

def increase_partition_power(self):

    if (not self.next_part_power):
        return False
    if (self.next_part_power != (self.part_power + 1)):
        return False
    new_replica2part2dev = []
    for replica in self._replica2part2dev:
        new_replica = array('H')
        for device in replica:
            new_replica.append(device)
            new_replica.append(device)
        new_replica2part2dev.append(new_replica)
    self._replica2part2dev = new_replica2part2dev
    for device in self._iter_devs():
        device['parts'] *= 2
    new_last_part_moves = []
    for partition in self._last_part_moves:
        new_last_part_moves.append(partition)
        new_last_part_moves.append(partition)
    self._last_part_moves = new_last_part_moves
    self.part_power = self.next_part_power
    self.parts *= 2
    self.version += 1
    return True
