'Clone the backing.
:param volume: New Volume object
:param backing: Reference to the backing entity
:param snapshot: Reference to the snapshot entity
:param clone_type: type of the clone
:param src_vsize: the size of the source volume'

def _clone_backing(self, volume, backing, snapshot, clone_type, src_vsize):

    if ((clone_type == volumeops.LINKED_CLONE_TYPE) and (volume.size > src_vsize)):
        clone_type = volumeops.FULL_CLONE_TYPE
        LOG.debug('Linked    cloning    not    possible    for    creating    volume    since    volume    needs    to    be    extended    after    cloning.', resource=volume)
    datastore = None
    host = None
    rp = None
    folder = None
    if (not (clone_type == volumeops.LINKED_CLONE_TYPE)):
        (host, rp, folder, summary) = self._select_ds_for_volume(volume)
        datastore = summary.datastore
    extra_config = self._get_extra_config(volume)
    clone = self.volumeops.clone_backing(volume['name'], backing, snapshot, clone_type, datastore, host=host, resource_pool=rp, extra_config=extra_config, folder=folder)
    if ((clone_type == volumeops.LINKED_CLONE_TYPE) and versionutils.is_compatible('6.0', self._vc_version, same_major=False)):
        LOG.debug('Not    setting    vmdk    UUID    for    volume:    %s.', volume['id'])
    else:
        self.volumeops.update_backing_disk_uuid(clone, volume['id'])
    if (volume['size'] > src_vsize):
        self._extend_backing(clone, volume['size'])
    LOG.info('Successfully    created    clone:    %s.', clone)
