lib/blob: rename extents to extents_rle

In future patches new type of extents will be added,
for compatibility the current extent type will be still
handled in the code.

To signify the difference between those two types,
current type is renamed to SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE.
Along with any variables throughout the code,
to make it clear which ones are used.

There are no functional changes in this patch.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I7186ccc452d200036188abf1dcea9660dcedee72
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468230
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Tomasz Zawadzki 2019-09-10 03:21:03 -04:00 committed by Jim Harris
parent 41f2d0e448
commit 3e372f35c3
2 changed files with 49 additions and 49 deletions

View File

@ -474,23 +474,23 @@ _spdk_blob_parse_page(const struct spdk_blob_md_page *page, struct spdk_blob *bl
blob->data_ro_flags = desc_flags->data_ro_flags;
blob->md_ro_flags = desc_flags->md_ro_flags;
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT) {
struct spdk_blob_md_descriptor_extent *desc_extent;
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE) {
struct spdk_blob_md_descriptor_extent_rle *desc_extent_rle;
unsigned int i, j;
unsigned int cluster_count = blob->active.num_clusters;
desc_extent = (struct spdk_blob_md_descriptor_extent *)desc;
desc_extent_rle = (struct spdk_blob_md_descriptor_extent_rle *)desc;
if (desc_extent->length == 0 ||
(desc_extent->length % sizeof(desc_extent->extents[0]) != 0)) {
if (desc_extent_rle->length == 0 ||
(desc_extent_rle->length % sizeof(desc_extent_rle->extents[0]) != 0)) {
return -EINVAL;
}
for (i = 0; i < desc_extent->length / sizeof(desc_extent->extents[0]); i++) {
for (j = 0; j < desc_extent->extents[i].length; j++) {
if (desc_extent->extents[i].cluster_idx != 0) {
for (i = 0; i < desc_extent_rle->length / sizeof(desc_extent_rle->extents[0]); i++) {
for (j = 0; j < desc_extent_rle->extents[i].length; j++) {
if (desc_extent_rle->extents[i].cluster_idx != 0) {
if (!spdk_bit_array_get(blob->bs->used_clusters,
desc_extent->extents[i].cluster_idx + j)) {
desc_extent_rle->extents[i].cluster_idx + j)) {
return -EINVAL;
}
}
@ -508,11 +508,11 @@ _spdk_blob_parse_page(const struct spdk_blob_md_page *page, struct spdk_blob *bl
blob->active.clusters = tmp;
blob->active.cluster_array_size = cluster_count;
for (i = 0; i < desc_extent->length / sizeof(desc_extent->extents[0]); i++) {
for (j = 0; j < desc_extent->extents[i].length; j++) {
if (desc_extent->extents[i].cluster_idx != 0) {
for (i = 0; i < desc_extent_rle->length / sizeof(desc_extent_rle->extents[0]); i++) {
for (j = 0; j < desc_extent_rle->extents[i].length; j++) {
if (desc_extent_rle->extents[i].cluster_idx != 0) {
blob->active.clusters[blob->active.num_clusters++] = _spdk_bs_cluster_to_lba(blob->bs,
desc_extent->extents[i].cluster_idx + j);
desc_extent_rle->extents[i].cluster_idx + j);
} else if (spdk_blob_is_thin_provisioned(blob)) {
blob->active.clusters[blob->active.num_clusters++] = 0;
} else {
@ -673,24 +673,24 @@ _spdk_blob_serialize_xattr(const struct spdk_xattr *xattr,
}
static void
_spdk_blob_serialize_extent(const struct spdk_blob *blob,
uint64_t start_cluster, uint64_t *next_cluster,
uint8_t *buf, size_t buf_sz)
_spdk_blob_serialize_extent_rle(const struct spdk_blob *blob,
uint64_t start_cluster, uint64_t *next_cluster,
uint8_t *buf, size_t buf_sz)
{
struct spdk_blob_md_descriptor_extent *desc;
struct spdk_blob_md_descriptor_extent_rle *desc_extent_rle;
size_t cur_sz;
uint64_t i, extent_idx;
uint64_t lba, lba_per_cluster, lba_count;
/* The buffer must have room for at least one extent */
cur_sz = sizeof(struct spdk_blob_md_descriptor) + sizeof(desc->extents[0]);
cur_sz = sizeof(struct spdk_blob_md_descriptor) + sizeof(desc_extent_rle->extents[0]);
if (buf_sz < cur_sz) {
*next_cluster = start_cluster;
return;
}
desc = (struct spdk_blob_md_descriptor_extent *)buf;
desc->type = SPDK_MD_DESCRIPTOR_TYPE_EXTENT;
desc_extent_rle = (struct spdk_blob_md_descriptor_extent_rle *)buf;
desc_extent_rle->type = SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE;
lba_per_cluster = _spdk_bs_cluster_to_lba(blob->bs, 1);
@ -705,15 +705,15 @@ _spdk_blob_serialize_extent(const struct spdk_blob *blob,
lba_count += lba_per_cluster;
continue;
}
desc->extents[extent_idx].cluster_idx = lba / lba_per_cluster;
desc->extents[extent_idx].length = lba_count / lba_per_cluster;
desc_extent_rle->extents[extent_idx].cluster_idx = lba / lba_per_cluster;
desc_extent_rle->extents[extent_idx].length = lba_count / lba_per_cluster;
extent_idx++;
cur_sz += sizeof(desc->extents[extent_idx]);
cur_sz += sizeof(desc_extent_rle->extents[extent_idx]);
if (buf_sz < cur_sz) {
/* If we ran out of buffer space, return */
desc->length = sizeof(desc->extents[0]) * extent_idx;
desc_extent_rle->length = sizeof(desc_extent_rle->extents[0]) * extent_idx;
*next_cluster = i;
return;
}
@ -722,29 +722,29 @@ _spdk_blob_serialize_extent(const struct spdk_blob *blob,
lba_count = lba_per_cluster;
}
desc->extents[extent_idx].cluster_idx = lba / lba_per_cluster;
desc->extents[extent_idx].length = lba_count / lba_per_cluster;
desc_extent_rle->extents[extent_idx].cluster_idx = lba / lba_per_cluster;
desc_extent_rle->extents[extent_idx].length = lba_count / lba_per_cluster;
extent_idx++;
desc->length = sizeof(desc->extents[0]) * extent_idx;
desc_extent_rle->length = sizeof(desc_extent_rle->extents[0]) * extent_idx;
*next_cluster = blob->active.num_clusters;
return;
}
static int
_spdk_blob_serialize_extents(const struct spdk_blob *blob,
struct spdk_blob_md_page **pages,
struct spdk_blob_md_page *cur_page,
uint32_t *page_count, uint8_t **buf,
size_t *remaining_sz)
_spdk_blob_serialize_extents_rle(const struct spdk_blob *blob,
struct spdk_blob_md_page **pages,
struct spdk_blob_md_page *cur_page,
uint32_t *page_count, uint8_t **buf,
size_t *remaining_sz)
{
uint64_t last_cluster;
int rc;
last_cluster = 0;
while (last_cluster < blob->active.num_clusters) {
_spdk_blob_serialize_extent(blob, last_cluster, &last_cluster, *buf, *remaining_sz);
_spdk_blob_serialize_extent_rle(blob, last_cluster, &last_cluster, *buf, *remaining_sz);
if (last_cluster == blob->active.num_clusters) {
break;
@ -881,7 +881,7 @@ _spdk_blob_serialize(const struct spdk_blob *blob, struct spdk_blob_md_page **pa
}
/* Serialize extents */
rc = _spdk_blob_serialize_extents(blob, pages, cur_page, page_count, &buf, &remaining_sz);
rc = _spdk_blob_serialize_extents_rle(blob, pages, cur_page, page_count, &buf, &remaining_sz);
return rc;
}
@ -3030,17 +3030,17 @@ _spdk_bs_load_replay_md_parse_page(const struct spdk_blob_md_page *page, struct
/* If padding and length are 0, this terminates the page */
break;
}
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT) {
struct spdk_blob_md_descriptor_extent *desc_extent;
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE) {
struct spdk_blob_md_descriptor_extent_rle *desc_extent_rle;
unsigned int i, j;
unsigned int cluster_count = 0;
uint32_t cluster_idx;
desc_extent = (struct spdk_blob_md_descriptor_extent *)desc;
desc_extent_rle = (struct spdk_blob_md_descriptor_extent_rle *)desc;
for (i = 0; i < desc_extent->length / sizeof(desc_extent->extents[0]); i++) {
for (j = 0; j < desc_extent->extents[i].length; j++) {
cluster_idx = desc_extent->extents[i].cluster_idx;
for (i = 0; i < desc_extent_rle->length / sizeof(desc_extent_rle->extents[0]); i++) {
for (j = 0; j < desc_extent_rle->extents[i].length; j++) {
cluster_idx = desc_extent_rle->extents[i].cluster_idx;
/*
* cluster_idx = 0 means an unallocated cluster - don't mark that
* in the used cluster map.
@ -3459,20 +3459,20 @@ _spdk_bs_dump_print_md_page(struct spdk_bs_dump_ctx *ctx)
/* If padding and length are 0, this terminates the page */
break;
}
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT) {
struct spdk_blob_md_descriptor_extent *desc_extent;
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE) {
struct spdk_blob_md_descriptor_extent_rle *desc_extent_rle;
unsigned int i;
desc_extent = (struct spdk_blob_md_descriptor_extent *)desc;
desc_extent_rle = (struct spdk_blob_md_descriptor_extent_rle *)desc;
for (i = 0; i < desc_extent->length / sizeof(desc_extent->extents[0]); i++) {
if (desc_extent->extents[i].cluster_idx != 0) {
for (i = 0; i < desc_extent_rle->length / sizeof(desc_extent_rle->extents[0]); i++) {
if (desc_extent_rle->extents[i].cluster_idx != 0) {
fprintf(ctx->fp, "Allocated Extent - Start: %" PRIu32,
desc_extent->extents[i].cluster_idx);
desc_extent_rle->extents[i].cluster_idx);
} else {
fprintf(ctx->fp, "Unallocated Extent - ");
}
fprintf(ctx->fp, " Length: %" PRIu32, desc_extent->extents[i].length);
fprintf(ctx->fp, " Length: %" PRIu32, desc_extent_rle->extents[i].length);
fprintf(ctx->fp, "\n");
}
} else if (desc->type == SPDK_MD_DESCRIPTOR_TYPE_XATTR) {

View File

@ -242,7 +242,7 @@ struct spdk_bs_md_mask {
};
#define SPDK_MD_DESCRIPTOR_TYPE_PADDING 0
#define SPDK_MD_DESCRIPTOR_TYPE_EXTENT 1
#define SPDK_MD_DESCRIPTOR_TYPE_EXTENT_RLE 1
#define SPDK_MD_DESCRIPTOR_TYPE_XATTR 2
#define SPDK_MD_DESCRIPTOR_TYPE_FLAGS 3
#define SPDK_MD_DESCRIPTOR_TYPE_XATTR_INTERNAL 4
@ -258,7 +258,7 @@ struct spdk_blob_md_descriptor_xattr {
/* String name immediately followed by string value. */
};
struct spdk_blob_md_descriptor_extent {
struct spdk_blob_md_descriptor_extent_rle {
uint8_t type;
uint32_t length;