[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 38/42] sheepdog: reload only header in a case of live
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 38/42] sheepdog: reload only header in a case of live snapshot |
Date: |
Fri, 6 Jun 2014 18:13:59 +0200 |
From: Hitoshi Mitake <address@hidden>
sheepdog driver doesn't need to read data_vdi_id[] when a live snapshot is
created.
Cc: Kevin Wolf <address@hidden>
Cc: Stefan Hajnoczi <address@hidden>
Cc: Liu Yuan <address@hidden>
Cc: MORITA Kazutaka <address@hidden>
Signed-off-by: Hitoshi Mitake <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block/sheepdog.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 5f7e025..1fa1939 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -200,6 +200,8 @@ typedef struct SheepdogInode {
uint32_t data_vdi_id[MAX_DATA_OBJS];
} SheepdogInode;
+#define SD_INODE_HEADER_SIZE offsetof(SheepdogInode, data_vdi_id)
+
/*
* 64 bit FNV-1a non-zero initial basis
*/
@@ -1287,7 +1289,7 @@ static int reload_inode(BDRVSheepdogState *s, uint32_t
snapid, const char *tag)
return -EIO;
}
- inode = g_malloc(sizeof(s->inode));
+ inode = g_malloc(SD_INODE_HEADER_SIZE);
ret = find_vdi_name(s, s->name, snapid, tag, &vid, false, &local_err);
if (ret) {
@@ -1297,13 +1299,14 @@ static int reload_inode(BDRVSheepdogState *s, uint32_t
snapid, const char *tag)
}
ret = read_object(fd, s->aio_context, (char *)inode, vid_to_vdi_oid(vid),
- s->inode.nr_copies, sizeof(*inode), 0, s->cache_flags);
+ s->inode.nr_copies, SD_INODE_HEADER_SIZE, 0,
+ s->cache_flags);
if (ret < 0) {
goto out;
}
if (inode->vdi_id != s->inode.vdi_id) {
- memcpy(&s->inode, inode, sizeof(s->inode));
+ memcpy(&s->inode, inode, SD_INODE_HEADER_SIZE);
}
out:
--
1.9.3
- [Qemu-devel] [PULL 33/42] blockdev: acquire AioContext in block_set_io_throttle, (continued)
- [Qemu-devel] [PULL 33/42] blockdev: acquire AioContext in block_set_io_throttle, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 34/42] block: fix wrong order in live block migration setup, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 36/42] rbd: Fix leaks in rbd_start_aio() error path, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 35/42] qemu-img: Document check exit codes, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 40/42] qapi: create two block related json modules, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 39/42] qapi: Extract qapi/common.json definitions, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 41/42] qapi: Extract qapi/block-core.json definitions, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 42/42] qapi: Extract qapi/block.json definitions, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 23/42] dataplane: use the QEMU block layer for I/O, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 37/42] sheepdog: fix vdi object update after live snapshot, Stefan Hajnoczi, 2014/06/06
- [Qemu-devel] [PULL 38/42] sheepdog: reload only header in a case of live snapshot,
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PULL 00/42] Block patches, Peter Maydell, 2014/06/09