Sheep calls fallocate before creating objects, so we don't need to
send actual data to be written when preallocating objects.

Signed-off-by: MORITA Kazutaka <morita.kazut...@lab.ntt.co.jp>
---
 collie/vdi.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/collie/vdi.c b/collie/vdi.c
index 9cedfac..3734dfb 100644
--- a/collie/vdi.c
+++ b/collie/vdi.c
@@ -510,7 +510,6 @@ static int vdi_create(int argc, char **argv)
        uint64_t oid;
        int idx, max_idx, ret;
        struct sheepdog_inode *inode = NULL;
-       char *buf = NULL;
 
        if (!argv[optind]) {
                fprintf(stderr, "Please specify the VDI size\n");
@@ -530,8 +529,7 @@ static int vdi_create(int argc, char **argv)
                goto out;
 
        inode = malloc(sizeof(*inode));
-       buf = zalloc(SD_DATA_OBJ_SIZE);
-       if (!inode || !buf) {
+       if (!inode) {
                fprintf(stderr, "Failed to allocate memory\n");
                ret = EXIT_SYSFAIL;
                goto out;
@@ -548,8 +546,8 @@ static int vdi_create(int argc, char **argv)
        for (idx = 0; idx < max_idx; idx++) {
                oid = vid_to_data_oid(vid, idx);
 
-               ret = sd_write_object(oid, 0, buf, SD_DATA_OBJ_SIZE, 0, 0,
-                                     inode->nr_copies, true, true);
+               ret = sd_write_object(oid, 0, NULL, 0, 0, 0, inode->nr_copies,
+                                     true, true);
                if (ret != SD_RES_SUCCESS) {
                        ret = EXIT_FAILURE;
                        goto out;
@@ -567,7 +565,6 @@ static int vdi_create(int argc, char **argv)
        ret = EXIT_SUCCESS;
 out:
        free(inode);
-       free(buf);
        return ret;
 }
 
-- 
1.7.2.5

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to