int lsm_volume_replicate_range (lsm_connect *conn, lsm_replication_type rep_type, lsm_volume *source, lsm_volume *dest, lsm_block_range **ranges, uint32_t num_ranges, char **job, lsm_flag flags);
lsm_replication_type. Valid values are: * LSM_VOLUME_REPLICATE_CLONE
Point in time read writeable space efficient copy of
data. Also know as read writeable snapshot. * LSM_VOLUME_REPLICATE_COPY
Full bitwise copy of the data (occupies full space).
Pointer of replication source lsm_volume.
Pointer of replication target lsm_volume. Could be the same as source.
Array of lsm_block_range. Please use lsm_block_range_record_array_alloc and lsm_block_range_record_alloc to create it.
uint32_t. Number of entries in ranges.
Output pointer of string. If storage system support asynchronous action on this, a job will be created and could be tracked via lsm_job_status_get. NULL if storage system does not support asynchronous action on this.
Reserved for future use, must be LSM_CLIENT_FLAG_RSVD.
Replicates a portion of specified source volume to target volume.
LSM_CAP_VOLUME_COPY_RANGE LSM_CAP_VOLUME_COPY_RANGE_CLONE LSM_CAP_VOLUME_COPY_RANGE_COPY
Error code as enumerated by 'lsm_error_number'.
A job is started. Please check the 'job' output pointer.
When any argument is NULL or not a valid lsm_connect pointer
or invalid flags or invalid replication type.
When volume not found.
When pool not found.
Pool is not ready.