Current fill_vdi_info_range() produces needlessly large read
requests. This patch reduces the size of the requests.

Signed-off-by: Hitoshi Mitake <[email protected]>
---
 sheep/vdi.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sheep/vdi.c b/sheep/vdi.c
index 2edecc5..49ee2f5 100644
--- a/sheep/vdi.c
+++ b/sheep/vdi.c
@@ -1402,7 +1402,7 @@ static int fill_vdi_info_range(uint32_t left, uint32_t 
right,
        uint32_t i;
        const char *name = iocb->name;
 
-       inode = malloc(SD_INODE_HEADER_SIZE);
+       inode = malloc(offsetof(struct sd_inode, btree_counter));
        if (!inode) {
                sd_err("failed to allocate memory");
                ret = SD_RES_NO_MEM;
@@ -1414,7 +1414,8 @@ static int fill_vdi_info_range(uint32_t left, uint32_t 
right,
                        continue;
 
                ret = sd_read_object(vid_to_vdi_oid(i), (char *)inode,
-                                    SD_INODE_HEADER_SIZE, 0);
+                                    offsetof(struct sd_inode, btree_counter),
+                                    0);
                if (ret != SD_RES_SUCCESS)
                        goto out;
 
-- 
1.9.1

-- 
sheepdog mailing list
[email protected]
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to