'Attempt restore rbd volume from backup using diff transfer.'

def _diff_restore_rbd(self, backup, restore_file, restore_name, restore_point, restore_length):

    rbd_user = restore_file.rbd_user
    rbd_pool = restore_file.rbd_pool
    rbd_conf = restore_file.rbd_conf
    base_name = self._get_backup_base_name(backup.volume_id, diff_format=True)
    LOG.debug("Attempting    incremental    restore    from    base='%(base)s'    snap='%(snap)s'", {'base': base_name, 'snap': restore_point})
    before = time.time()
    try:
        self._rbd_diff_transfer(base_name, backup.container, restore_name, rbd_pool, src_user=self._ceph_backup_user, src_conf=self._ceph_backup_conf, dest_user=rbd_user, dest_conf=rbd_conf, src_snap=restore_point)
    except exception.BackupRBDOperationFailed:
        LOG.exception('Differential    restore    failed,    trying    full    restore')
        raise
    self._check_restore_vol_size(backup, restore_name, restore_length, rbd_pool)
    LOG.debug('Restore    transfer    completed    in    %.4fs', (time.time() - before))
