Rename some stuff and limit LBLK_SHIFT_MAX
This commit is contained in:
parent
2e18584af3
commit
0ca9fc789f
|
@ -75,7 +75,7 @@ struct dm_compress
|
||||||
/* Currently cached lblk data (if any) */
|
/* Currently cached lblk data (if any) */
|
||||||
u64 lblk_num;
|
u64 lblk_num;
|
||||||
bool lblk_dirty;
|
bool lblk_dirty;
|
||||||
struct lblk_alloc* lblk_alloc;
|
struct lblk_alloc_elem* lblk_alloc;
|
||||||
|
|
||||||
void* lblk;
|
void* lblk;
|
||||||
|
|
||||||
|
@ -197,8 +197,8 @@ zone_pblk_alloc_write(struct dm_compress* dc)
|
||||||
u32 count;
|
u32 count;
|
||||||
|
|
||||||
BUG_ON(dc->zone_pblk_alloc_idx == ZONE_NONE);
|
BUG_ON(dc->zone_pblk_alloc_idx == ZONE_NONE);
|
||||||
pblk = zone_pblk_alloc_off(&dc->params, dc->zone_pblk_alloc_idx);
|
pblk = pblk_alloc_off(&dc->params, dc->zone_pblk_alloc_idx);
|
||||||
count = zone_pblk_alloc_len(&dc->params);
|
count = pblk_alloc_len(&dc->params);
|
||||||
|
|
||||||
ret = blkdev_pblk_write(dc->dev->bdev, pblk, count, dc->zone_pblk_alloc);
|
ret = blkdev_pblk_write(dc->dev->bdev, pblk, count, dc->zone_pblk_alloc);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -241,8 +241,8 @@ zone_pblk_alloc_read(struct dm_compress* dc, u32 idx)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
pblk = zone_pblk_alloc_off(&dc->params, idx);
|
pblk = pblk_alloc_off(&dc->params, idx);
|
||||||
count = zone_pblk_alloc_len(&dc->params);
|
count = pblk_alloc_len(&dc->params);
|
||||||
|
|
||||||
ret = blkdev_pblk_read(dc->dev->bdev, pblk, count, dc->zone_pblk_alloc);
|
ret = blkdev_pblk_read(dc->dev->bdev, pblk, count, dc->zone_pblk_alloc);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -261,7 +261,7 @@ zone_pblk_alloc_read(struct dm_compress* dc, u32 idx)
|
||||||
static u64
|
static u64
|
||||||
zone_pblk_alloc_get(struct dm_compress* dc, u32 zone_hint)
|
zone_pblk_alloc_get(struct dm_compress* dc, u32 zone_hint)
|
||||||
{
|
{
|
||||||
u32 zone_pblk_count = zone_pblk_alloc_len(&dc->params) * PBLK_SIZE_BITS;
|
u32 zone_pblk_count = pblk_alloc_len(&dc->params) * PBLK_SIZE_BITS;
|
||||||
u32 zone;
|
u32 zone;
|
||||||
u32 idx;
|
u32 idx;
|
||||||
|
|
||||||
|
@ -295,7 +295,7 @@ zone_pblk_alloc_get(struct dm_compress* dc, u32 zone_hint)
|
||||||
static int
|
static int
|
||||||
zone_pblk_alloc_put(struct dm_compress* dc, u64 pblk)
|
zone_pblk_alloc_put(struct dm_compress* dc, u64 pblk)
|
||||||
{
|
{
|
||||||
u32 zone_pblk_count = zone_pblk_alloc_len(&dc->params) * PBLK_SIZE_BITS;
|
u32 zone_pblk_count = pblk_alloc_len(&dc->params) * PBLK_SIZE_BITS;
|
||||||
u32 zone;
|
u32 zone;
|
||||||
u32 idx;
|
u32 idx;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -345,8 +345,8 @@ zone_lblk_alloc_write(struct dm_compress* dc)
|
||||||
}
|
}
|
||||||
|
|
||||||
BUG_ON(dc->zone_lblk_alloc_idx == ZONE_NONE);
|
BUG_ON(dc->zone_lblk_alloc_idx == ZONE_NONE);
|
||||||
pblk = zone_lblk_alloc_off(&dc->params, dc->zone_lblk_alloc_idx);
|
pblk = lblk_alloc_off(&dc->params, dc->zone_lblk_alloc_idx);
|
||||||
count = zone_lblk_alloc_len(&dc->params);
|
count = lblk_alloc_len(&dc->params);
|
||||||
|
|
||||||
ret = blkdev_pblk_write(dc->dev->bdev, pblk, count, dc->zone_lblk_alloc);
|
ret = blkdev_pblk_write(dc->dev->bdev, pblk, count, dc->zone_lblk_alloc);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -371,8 +371,8 @@ zone_lblk_alloc_read(struct dm_compress* dc, u32 idx)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pblk = zone_lblk_alloc_off(&dc->params, idx);
|
pblk = lblk_alloc_off(&dc->params, idx);
|
||||||
count = zone_lblk_alloc_len(&dc->params);
|
count = lblk_alloc_len(&dc->params);
|
||||||
ret = blkdev_pblk_read(dc->dev->bdev, pblk, count, dc->zone_lblk_alloc);
|
ret = blkdev_pblk_read(dc->dev->bdev, pblk, count, dc->zone_lblk_alloc);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
dc->zone_lblk_alloc_idx = idx;
|
dc->zone_lblk_alloc_idx = idx;
|
||||||
|
@ -504,7 +504,7 @@ lblk_write(struct dm_compress* dc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cbd_lblk_alloc_put(&dc->params,
|
lblk_alloc_elem_put(&dc->params,
|
||||||
dc->zone_lblk_alloc, zone_lblk, dc->lblk_alloc);
|
dc->zone_lblk_alloc, zone_lblk, dc->lblk_alloc);
|
||||||
ret = zone_lblk_alloc_write(dc);
|
ret = zone_lblk_alloc_write(dc);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
@ -562,7 +562,7 @@ lblk_read(struct dm_compress* dc, u64 idx)
|
||||||
printk(KERN_ERR " zone_lblk_alloc_read failed\n");
|
printk(KERN_ERR " zone_lblk_alloc_read failed\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
cbd_lblk_alloc_get(&dc->params,
|
lblk_alloc_elem_get(&dc->params,
|
||||||
dc->zone_lblk_alloc, zone_lblk, dc->lblk_alloc);
|
dc->zone_lblk_alloc, zone_lblk, dc->lblk_alloc);
|
||||||
|
|
||||||
c_len = dc->lblk_alloc->len;
|
c_len = dc->lblk_alloc->len;
|
||||||
|
@ -663,10 +663,10 @@ compress_free_buffers(struct dm_compress* dc)
|
||||||
kfree(dc->lblk_alloc);
|
kfree(dc->lblk_alloc);
|
||||||
dc->lblk_alloc = NULL;
|
dc->lblk_alloc = NULL;
|
||||||
|
|
||||||
compress_free_pages(dc->zone_lblk_alloc, PBLK_SIZE * zone_lblk_alloc_len(&dc->params));
|
compress_free_pages(dc->zone_lblk_alloc, PBLK_SIZE * lblk_alloc_len(&dc->params));
|
||||||
dc->zone_lblk_alloc = NULL;
|
dc->zone_lblk_alloc = NULL;
|
||||||
|
|
||||||
compress_free_pages(dc->zone_pblk_alloc, PBLK_SIZE * zone_pblk_alloc_len(&dc->params));
|
compress_free_pages(dc->zone_pblk_alloc, PBLK_SIZE * pblk_alloc_len(&dc->params));
|
||||||
dc->zone_pblk_alloc = NULL;
|
dc->zone_pblk_alloc = NULL;
|
||||||
|
|
||||||
compress_free_pages(dc->lz4_cbuf, PBLK_SIZE * lblk_per_pblk(&dc->params));
|
compress_free_pages(dc->lz4_cbuf, PBLK_SIZE * lblk_per_pblk(&dc->params));
|
||||||
|
@ -696,20 +696,20 @@ compress_alloc_buffers(struct dm_compress* dc)
|
||||||
}
|
}
|
||||||
dc->zone_pblk_alloc_idx = ZONE_NONE;
|
dc->zone_pblk_alloc_idx = ZONE_NONE;
|
||||||
dc->zone_pblk_alloc_dirty = false;
|
dc->zone_pblk_alloc_dirty = false;
|
||||||
dc->zone_pblk_alloc = compress_alloc_pages(PBLK_SIZE * zone_pblk_alloc_len(&dc->params));
|
dc->zone_pblk_alloc = compress_alloc_pages(PBLK_SIZE * pblk_alloc_len(&dc->params));
|
||||||
if (!dc->zone_pblk_alloc) {
|
if (!dc->zone_pblk_alloc) {
|
||||||
printk(KERN_ERR "%s: Failed to alloc zone_pblk_alloc\n", __func__);
|
printk(KERN_ERR "%s: Failed to alloc zone_pblk_alloc\n", __func__);
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
}
|
}
|
||||||
dc->zone_lblk_alloc_idx = ZONE_NONE;
|
dc->zone_lblk_alloc_idx = ZONE_NONE;
|
||||||
dc->zone_lblk_alloc = compress_alloc_pages(PBLK_SIZE * zone_lblk_alloc_len(&dc->params));
|
dc->zone_lblk_alloc = compress_alloc_pages(PBLK_SIZE * lblk_alloc_len(&dc->params));
|
||||||
if (!dc->zone_lblk_alloc) {
|
if (!dc->zone_lblk_alloc) {
|
||||||
printk(KERN_ERR "%s: Failed to alloc zone_lblk_alloc\n", __func__);
|
printk(KERN_ERR "%s: Failed to alloc zone_lblk_alloc\n", __func__);
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
}
|
}
|
||||||
dc->lblk_num = LBLK_NONE;
|
dc->lblk_num = LBLK_NONE;
|
||||||
dc->lblk_dirty = false;
|
dc->lblk_dirty = false;
|
||||||
dc->lblk_alloc = kmalloc(offsetof(struct lblk_alloc, pblk[lblk_per_pblk(&dc->params)]), GFP_KERNEL);
|
dc->lblk_alloc = kmalloc(offsetof(struct lblk_alloc_elem, pblk[lblk_per_pblk(&dc->params)]), GFP_KERNEL);
|
||||||
if (!dc->lblk_alloc) {
|
if (!dc->lblk_alloc) {
|
||||||
printk(KERN_ERR "%s: Failed to alloc lblk_alloc\n", __func__);
|
printk(KERN_ERR "%s: Failed to alloc lblk_alloc\n", __func__);
|
||||||
goto out_nomem;
|
goto out_nomem;
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#define PBLK_PER_SECTOR (1 << (PBLK_SHIFT - SECTOR_SHIFT))
|
#define PBLK_PER_SECTOR (1 << (PBLK_SHIFT - SECTOR_SHIFT))
|
||||||
|
|
||||||
#define LBLK_SHIFT_MIN 1
|
#define LBLK_SHIFT_MIN 1
|
||||||
#define LBLK_SHIFT_MAX (30 - PBLK_SHIFT)
|
#define LBLK_SHIFT_MAX (20 - PBLK_SHIFT)
|
||||||
|
|
||||||
#define CBD_HEADER_BLOCKS 1
|
#define CBD_HEADER_BLOCKS 1
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ struct cbd_header {
|
||||||
struct cbd_params params;
|
struct cbd_params params;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct lblk_alloc
|
struct lblk_alloc_elem
|
||||||
{
|
{
|
||||||
u32 len; /* Compressed length */
|
u32 len; /* Compressed length */
|
||||||
u64 pblk[1]; /* Vector of physical blocks */
|
u64 pblk[1]; /* Vector of physical blocks */
|
||||||
|
@ -157,13 +157,13 @@ lblk_per_pblk(const struct cbd_params* params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
zone_pblk_alloc_len(const struct cbd_params* params)
|
pblk_alloc_len(const struct cbd_params* params)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
zone_lblk_alloc_elem_len(const struct cbd_params* params)
|
lblk_alloc_elem_len(const struct cbd_params* params)
|
||||||
{
|
{
|
||||||
u32 elem_len_bytes = (params->lblk_shift + PBLK_SHIFT > 16) ? 4 : 2;
|
u32 elem_len_bytes = (params->lblk_shift + PBLK_SHIFT > 16) ? 4 : 2;
|
||||||
u32 elem_pblk_bytes = (params->nr_pblk <= 0xffff ? 2 :
|
u32 elem_pblk_bytes = (params->nr_pblk <= 0xffff ? 2 :
|
||||||
|
@ -172,22 +172,22 @@ zone_lblk_alloc_elem_len(const struct cbd_params* params)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
zone_lblk_alloc_len(const struct cbd_params* params)
|
lblk_alloc_len(const struct cbd_params* params)
|
||||||
{
|
{
|
||||||
return DIV_ROUND_UP(params->lblk_per_zone * zone_lblk_alloc_elem_len(params), PBLK_SIZE);
|
return DIV_ROUND_UP(params->lblk_per_zone * lblk_alloc_elem_len(params), PBLK_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
zone_metadata_len(const struct cbd_params* params)
|
zone_metadata_len(const struct cbd_params* params)
|
||||||
{
|
{
|
||||||
return zone_pblk_alloc_len(params) +
|
return pblk_alloc_len(params) +
|
||||||
zone_lblk_alloc_len(params);
|
lblk_alloc_len(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
zone_data_len(const struct cbd_params* params)
|
zone_data_len(const struct cbd_params* params)
|
||||||
{
|
{
|
||||||
return zone_pblk_alloc_len(params) * PBLK_SIZE * BITS_PER_BYTE;
|
return pblk_alloc_len(params) * PBLK_SIZE * BITS_PER_BYTE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u32
|
static inline u32
|
||||||
|
@ -204,24 +204,24 @@ zone_off(const struct cbd_params* params, u32 idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u64
|
static inline u64
|
||||||
zone_pblk_alloc_off(const struct cbd_params* params, u32 idx)
|
pblk_alloc_off(const struct cbd_params* params, u32 idx)
|
||||||
{
|
{
|
||||||
return zone_off(params, idx) + 0;
|
return zone_off(params, idx) + 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u64
|
static inline u64
|
||||||
zone_lblk_alloc_off(const struct cbd_params* params, u32 idx)
|
lblk_alloc_off(const struct cbd_params* params, u32 idx)
|
||||||
{
|
{
|
||||||
return zone_off(params, idx) +
|
return zone_off(params, idx) +
|
||||||
zone_pblk_alloc_len(params);
|
pblk_alloc_len(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u64
|
static inline u64
|
||||||
zone_data_off(const struct cbd_params* params, u32 idx)
|
zone_data_off(const struct cbd_params* params, u32 idx)
|
||||||
{
|
{
|
||||||
return zone_off(params, idx) +
|
return zone_off(params, idx) +
|
||||||
zone_pblk_alloc_len(params) +
|
pblk_alloc_len(params) +
|
||||||
zone_lblk_alloc_len(params);
|
lblk_alloc_len(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
@ -254,7 +254,7 @@ cbd_header_put(u8* buf, const struct cbd_header* header)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX:
|
* XXX:
|
||||||
* nr_bits = zone_pblk_alloc_len(params) * PBLK_SIZE;
|
* nr_bits = pblk_alloc_len(params) * PBLK_SIZE;
|
||||||
* bit = find_next_zero_bit_le(buf, nr_bits);
|
* bit = find_next_zero_bit_le(buf, nr_bits);
|
||||||
* if (bit < nr_bits) {
|
* if (bit < nr_bits) {
|
||||||
* set_bit_le(bit, buf);
|
* set_bit_le(bit, buf);
|
||||||
|
@ -294,61 +294,61 @@ cbd_bitmap_free(u8* buf, u32 idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
cbd_lblk_alloc_get(const struct cbd_params* params,
|
lblk_alloc_elem_get(const struct cbd_params* params,
|
||||||
const u8* buf, u32 idx, struct lblk_alloc* alloc)
|
const u8* buf, u32 idx, struct lblk_alloc_elem* elem)
|
||||||
{
|
{
|
||||||
const u8* raw = buf + idx * zone_lblk_alloc_elem_len(params);
|
const u8* raw = buf + idx * lblk_alloc_elem_len(params);
|
||||||
u32 n;
|
u32 n;
|
||||||
|
|
||||||
if (params->lblk_shift + PBLK_SHIFT > 16) {
|
if (params->lblk_shift + PBLK_SHIFT > 16) {
|
||||||
alloc->len = get32_le(&raw);
|
elem->len = get32_le(&raw);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alloc->len = get16_le(&raw);
|
elem->len = get16_le(&raw);
|
||||||
}
|
}
|
||||||
if (params->nr_pblk <= 0xffff) {
|
if (params->nr_pblk <= 0xffff) {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
alloc->pblk[n] = get16_le(&raw);
|
elem->pblk[n] = get16_le(&raw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (params->nr_pblk <= 0xffffffff) {
|
else if (params->nr_pblk <= 0xffffffff) {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
alloc->pblk[n] = get32_le(&raw);
|
elem->pblk[n] = get32_le(&raw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
alloc->pblk[n] = get48_le(&raw);
|
elem->pblk[n] = get48_le(&raw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
cbd_lblk_alloc_put(const struct cbd_params* params,
|
lblk_alloc_elem_put(const struct cbd_params* params,
|
||||||
void* buf, u32 idx, const struct lblk_alloc* alloc)
|
void* buf, u32 idx, const struct lblk_alloc_elem* elem)
|
||||||
{
|
{
|
||||||
u8* raw = buf + idx * zone_lblk_alloc_elem_len(params);
|
u8* raw = buf + idx * lblk_alloc_elem_len(params);
|
||||||
u32 n;
|
u32 n;
|
||||||
|
|
||||||
if (params->lblk_shift + PBLK_SHIFT > 16) {
|
if (params->lblk_shift + PBLK_SHIFT > 16) {
|
||||||
put32_le(&raw, alloc->len);
|
put32_le(&raw, elem->len);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
put16_le(&raw, alloc->len);
|
put16_le(&raw, elem->len);
|
||||||
}
|
}
|
||||||
if (params->nr_pblk <= 0xffff) {
|
if (params->nr_pblk <= 0xffff) {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
put16_le(&raw, alloc->pblk[n]);
|
put16_le(&raw, elem->pblk[n]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (params->nr_pblk <= 0xffffffff) {
|
else if (params->nr_pblk <= 0xffffffff) {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
put32_le(&raw, alloc->pblk[n]);
|
put32_le(&raw, elem->pblk[n]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
put48_le(&raw, alloc->pblk[n]);
|
put48_le(&raw, elem->pblk[n]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,13 +63,13 @@ check_one_lblk(const struct cbd_params* params,
|
||||||
const struct zone_metadata* zm,
|
const struct zone_metadata* zm,
|
||||||
u8** pblk_used)
|
u8** pblk_used)
|
||||||
{
|
{
|
||||||
struct lblk_alloc* alloc;
|
struct lblk_alloc_elem* alloc;
|
||||||
u32 n;
|
u32 n;
|
||||||
u64 pblk;
|
u64 pblk;
|
||||||
u32 rel_pblk;
|
u32 rel_pblk;
|
||||||
|
|
||||||
alloc = calloc(1, offsetof(struct lblk_alloc, pblk[lblk_per_pblk(params)]));
|
alloc = calloc(1, offsetof(struct lblk_alloc_elem, pblk[lblk_per_pblk(params)]));
|
||||||
cbd_lblk_alloc_get(params, zm->lblk_alloc, lblk, alloc);
|
lblk_alloc_elem_get(params, zm->lblk_alloc, lblk, alloc);
|
||||||
printf(" lblk[%u]: len=%u\n", lblk, alloc->len);
|
printf(" lblk[%u]: len=%u\n", lblk, alloc->len);
|
||||||
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
for (n = 0; n < lblk_per_pblk(params); ++n) {
|
||||||
pblk = alloc->pblk[n];
|
pblk = alloc->pblk[n];
|
||||||
|
@ -128,7 +128,7 @@ check_zone_metadata(const struct cbd_params* params,
|
||||||
|
|
||||||
pblk_used = calloc(params->nr_zones, sizeof(void*));
|
pblk_used = calloc(params->nr_zones, sizeof(void*));
|
||||||
for (zone = 0; zone < params->nr_zones; ++zone) {
|
for (zone = 0; zone < params->nr_zones; ++zone) {
|
||||||
pblk_used[zone] = calloc(1, zone_pblk_alloc_len(params));
|
pblk_used[zone] = calloc(1, pblk_alloc_len(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (zone = 0; zone < params->nr_zones; ++zone) {
|
for (zone = 0; zone < params->nr_zones; ++zone) {
|
||||||
|
@ -164,13 +164,13 @@ cbd_check(const char* dev,
|
||||||
for (zone = 0; zone < header.params.nr_zones; ++zone) {
|
for (zone = 0; zone < header.params.nr_zones; ++zone) {
|
||||||
zmvec[zone].pblk_alloc = calloc(1, PBLK_SIZE);
|
zmvec[zone].pblk_alloc = calloc(1, PBLK_SIZE);
|
||||||
pblk_read(devfd,
|
pblk_read(devfd,
|
||||||
zone_pblk_alloc_off(&header.params, zone),
|
pblk_alloc_off(&header.params, zone),
|
||||||
zone_pblk_alloc_len(&header.params),
|
pblk_alloc_len(&header.params),
|
||||||
zmvec[zone].pblk_alloc);
|
zmvec[zone].pblk_alloc);
|
||||||
zmvec[zone].lblk_alloc = calloc(zone_lblk_alloc_len(&header.params), PBLK_SIZE);
|
zmvec[zone].lblk_alloc = calloc(lblk_alloc_len(&header.params), PBLK_SIZE);
|
||||||
pblk_read(devfd,
|
pblk_read(devfd,
|
||||||
zone_lblk_alloc_off(&header.params, zone),
|
lblk_alloc_off(&header.params, zone),
|
||||||
zone_lblk_alloc_len(&header.params),
|
lblk_alloc_len(&header.params),
|
||||||
zmvec[zone].lblk_alloc);
|
zmvec[zone].lblk_alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue