Lines Matching defs:clone

802 	/* Try to create snapshot from clone with xattrs */
852 /* Confirm that blob is clone of snapshot2, and snapshot2 is clone of snapshot */
870 /* Delete blob and confirm that it is no longer on snapshot2 clone list */
876 /* Delete snapshot2 and confirm that it is no longer on snapshot clone list */
965 struct spdk_blob *blob, *snapshot, *clone;
1001 /* Create clone from snapshot with xattrs */
1017 clone = g_blob;
1018 CU_ASSERT(clone->data_ro == false);
1019 CU_ASSERT(clone->md_ro == false);
1020 CU_ASSERT(spdk_blob_get_num_clusters(clone) == 10);
1021 CU_ASSERT(spdk_blob_get_num_allocated_clusters(clone) == 0);
1023 rc = spdk_blob_get_xattr_value(clone, g_xattr_names[0], &value, &value_len);
1029 rc = spdk_blob_get_xattr_value(clone, g_xattr_names[1], &value, &value_len);
1035 rc = spdk_blob_get_xattr_value(clone, g_xattr_names[2], &value, &value_len);
1042 spdk_blob_close(clone, blob_op_complete, NULL);
1046 /* Try to create clone from not read only blob */
1058 /* Create clone from read only blob */
1069 clone = g_blob;
1070 CU_ASSERT(clone->data_ro == false);
1071 CU_ASSERT(clone->md_ro == false);
1072 CU_ASSERT(spdk_blob_get_num_clusters(clone) == 10);
1074 ut_blob_close_and_delete(bs, clone);
5361 /* For a clone we need to allocate and copy one cluster, update one page of metadata
5385 /* Data on snapshot should not change after write to clone */
5523 * should remain a clone of snapshot.
5614 * Last cluster shouldn't be written, to be sure that snapshot nor clone
5618 * is used only to check data consistency on clone before and after
5637 /* Check data consistency on clone */
5675 /* Check data consistency on clone */
5697 /* Check snapshot-clone relations */
5725 /* snapshotid have one clone */
5816 * clone2 clone
5825 struct spdk_blob *blob, *snapshot, *snapshot2, *clone, *clone2;
5883 /* Check if original blob is converted to the clone of snapshot */
5898 /* 3. Create clone from snapshot */
5910 clone = g_blob;
5912 CU_ASSERT(!spdk_blob_is_read_only(clone));
5913 CU_ASSERT(!spdk_blob_is_snapshot(clone));
5914 CU_ASSERT(spdk_blob_is_clone(clone));
5915 CU_ASSERT(spdk_blob_is_thin_provisioned(clone));
5916 CU_ASSERT(clone->parent_id == snapshotid);
5924 /* Check if clone is on the snapshot's list */
5932 /* 4. Create snapshot of the clone */
5952 /* Check if clone is converted to the clone of snapshot2 and snapshot2
5954 CU_ASSERT(!spdk_blob_is_read_only(clone));
5955 CU_ASSERT(!spdk_blob_is_snapshot(clone));
5956 CU_ASSERT(spdk_blob_is_clone(clone));
5957 CU_ASSERT(spdk_blob_is_thin_provisioned(clone));
5958 CU_ASSERT(clone->parent_id == snapshotid2);
5968 /* 5. Try to create clone from read only blob */
5976 /* Check if previously created blob is read only clone */
5982 /* Create clone from read only blob */
6019 spdk_blob_close(clone, blob_op_complete, NULL);
6031 /* Try to delete snapshot with more than 1 clone */
6071 /* clone */
6141 * clone2 clone clone3
6150 struct spdk_blob *blob, *snapshot1, *snapshot2, *snapshot3, *snapshot4, *clone, *clone2;
6195 /* Check if blob is the clone of snapshot1 */
6223 /* Check if snapshot2 is the clone of snapshot1 and blob
6234 /* 4. Create clone from snapshot */
6246 clone = g_blob;
6248 CU_ASSERT(clone->parent_id == snapshotid2);
6251 /* Check if clone is on the snapshot's list */
6259 /* 5. Create snapshot of the clone */
6276 /* Check if clone is converted to the clone of snapshot3 and snapshot3
6278 CU_ASSERT(clone->parent_id == snapshotid3);
6287 /* 6. Create another snapshot of the clone */
6304 /* Check if clone is converted to the clone of snapshot4 and snapshot4
6306 CU_ASSERT(clone->parent_id == snapshotid4);
6320 CU_ASSERT(clone->parent_id == snapshotid3);
6329 /* 8. Create second clone of snapshot 3 and try to remove snapshot 3 */
6341 /* 9. Open snapshot 3 again and try to remove it while clone 3 is closed */
6383 /* 11. Try to create clone from read only blob */
6391 /* Create clone from read only blob */
6422 spdk_blob_close(clone, blob_op_complete, NULL);
6456 /* clone */
6776 * Yet delete might perform further changes to the clone after that.
7536 struct spdk_blob *blob, *snapshot, *clone;
7632 clone = g_blob;
7636 test_io_read(dev, clone, channel);
7640 test_iov_read(dev, clone, channel, false);
7644 test_iov_read(dev, clone, channel, true);
7646 /* Inflate clone */
7653 test_io_read(dev, clone, channel);
7655 test_io_unmap(dev, clone, channel);
7657 test_iov_write(dev, clone, channel, false);
7658 test_iov_read(dev, clone, channel, false);
7659 test_io_unmap(dev, clone, channel);
7661 test_iov_write(dev, clone, channel, true);
7662 test_iov_read(dev, clone, channel, true);
7666 spdk_blob_close(clone, blob_op_complete, NULL);
8174 /* Create a normal blob and verify it is not an esnap clone. */
8180 /* Create an esnap clone blob then verify it is an esnap clone and has the right size */
8195 /* Create an esnap clone without the size and verify it can be grown */
8305 /* Create and open an esnap clone blob */
8328 /* Create and open regular clone of snap1 */
8508 /* Create and open the esnap clone */
8640 /* Try to create and open the esnap clone. Create should succeed, open should fail. */
8683 /* Create the esnap clone */
8895 * the leaf node (a clone of the snapshot) and the newly created
8929 * the "esnap clone". The esnap clone must have:
8935 * No other blob that descends from the esnap clone may have any of
8946 /* Create the esnap clone */
8967 * Create a snapshot of the blob. The snapshot becomes the esnap clone.
8985 * Delete the snapshot. The original blob becomes the esnap clone.
8994 * snapshot should survive as the esnap clone.
9017 * Clone the snapshot. The snapshot continues to be the esnap clone.
9035 * Delete the snapshot. The clone becomes the esnap clone.
9068 /* Create the esnap clone */
9080 /* Open the esnap clone */
9089 * Inflate or decouple the blob then verify that it is no longer an esnap clone and has
9143 /* Create and open an esnap clone blob */
9281 /* Resize a blob which is a clone created from snapshot. Verify read/writes to
9282 * expanded clone blob. Then inflate the clone blob. */
9288 struct spdk_blob *blob, *clone, *snap_blob, *snap_blob_rsz;
9326 clone = g_blob;
9327 CU_ASSERT(spdk_blob_get_num_clusters(clone) == 10);
9330 spdk_blob_resize(clone, 20, blob_op_complete, NULL);
9333 CU_ASSERT(spdk_blob_get_num_clusters(clone) == 20);
9335 /* Create another snapshot after resizing the clone */
9359 /* Confirm that clone is backed by snap_blob_rsz, and snap_blob_rsz is backed by snap_blob */
9367 spdk_blob_io_write(clone, channel, payload_write, 5 * pages_per_cluster, 1, blob_op_complete, NULL);
9373 spdk_blob_io_read(clone, channel, payload_read, 5 * pages_per_cluster, 1, blob_op_complete, NULL);
9381 spdk_blob_io_write(clone, channel, payload_write, 15 * pages_per_cluster, 1, blob_op_complete,
9388 spdk_blob_io_read(clone, channel, payload_read, 15 * pages_per_cluster, 1, blob_op_complete, NULL);
9393 /* Now do full blob inflation of the resized blob/clone. */
9402 spdk_blob_close(clone, blob_op_complete, NULL);
9455 /* Create and open the esnap clone */
9753 /* Create an esnap clone blob */
9774 /* Call set_parent correctly with a snapshot's clone blob */
9799 /* Call set_parent correctly with an esnap's clone blob */
9812 /* Create a not thin-provisioned blob that is not a clone */
9819 /* Call set_parent with a blob that isn't a clone and that isn't thin-provisioned */
9824 /* Create a thin-provisioned blob that is not a clone */
9831 /* Call set_parent correctly with a blob that isn't a clone */
9883 /* Create an esnap clone blob */
9913 /* Create a blob that is a clone of a snapshots */
9924 /* Call set_parent correctly with a snapshot's clone blob */
9941 /* Create a not thin-provisioned blob that is not a clone */
9948 /* Call set_external_parent with a blob that isn't a clone and that isn't thin-provisioned */
9954 /* Create a thin-provisioned blob that is not a clone */
9961 /* Call set_external_parent correctly with a blob that isn't a clone */