|
@@ -245,6 +245,10 @@ int sm_ll_extend(struct ll_disk *ll, dm_block_t extra_blocks)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * We need to set this before the dm_tm_new_block() call below.
|
|
|
+ */
|
|
|
+ ll->nr_blocks = nr_blocks;
|
|
|
for (i = old_blocks; i < blocks; i++) {
|
|
|
struct dm_block *b;
|
|
|
struct disk_index_entry idx;
|
|
@@ -252,6 +256,7 @@ int sm_ll_extend(struct ll_disk *ll, dm_block_t extra_blocks)
|
|
|
r = dm_tm_new_block(ll->tm, &dm_sm_bitmap_validator, &b);
|
|
|
if (r < 0)
|
|
|
return r;
|
|
|
+
|
|
|
idx.blocknr = cpu_to_le64(dm_block_location(b));
|
|
|
|
|
|
r = dm_tm_unlock(ll->tm, b);
|
|
@@ -266,7 +271,6 @@ int sm_ll_extend(struct ll_disk *ll, dm_block_t extra_blocks)
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
- ll->nr_blocks = nr_blocks;
|
|
|
return 0;
|
|
|
}
|
|
|
|