sheepdog: fix 'qemu-img map'
It was muted in the previous commit 4bc74be9
. Let's revive it since nothing
prevents us to do it.
With this patch, following command will work as other formats:
$ qemu-img map sheepdog:image
Cc: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
0e3bd9932f
commit
9cd767376f
@ -2442,11 +2442,12 @@ sd_co_get_block_status(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
|
|||||||
{
|
{
|
||||||
BDRVSheepdogState *s = bs->opaque;
|
BDRVSheepdogState *s = bs->opaque;
|
||||||
SheepdogInode *inode = &s->inode;
|
SheepdogInode *inode = &s->inode;
|
||||||
unsigned long start = sector_num * BDRV_SECTOR_SIZE / SD_DATA_OBJ_SIZE,
|
uint64_t offset = sector_num * BDRV_SECTOR_SIZE;
|
||||||
|
unsigned long start = offset / SD_DATA_OBJ_SIZE,
|
||||||
end = DIV_ROUND_UP((sector_num + nb_sectors) *
|
end = DIV_ROUND_UP((sector_num + nb_sectors) *
|
||||||
BDRV_SECTOR_SIZE, SD_DATA_OBJ_SIZE);
|
BDRV_SECTOR_SIZE, SD_DATA_OBJ_SIZE);
|
||||||
unsigned long idx;
|
unsigned long idx;
|
||||||
int64_t ret = BDRV_BLOCK_DATA;
|
int64_t ret = BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID | offset;
|
||||||
|
|
||||||
for (idx = start; idx < end; idx++) {
|
for (idx = start; idx < end; idx++) {
|
||||||
if (inode->data_vdi_id[idx] == 0) {
|
if (inode->data_vdi_id[idx] == 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user