Signed-off-by: MORITA Kazutaka <[email protected]>
---
 sheep/group.c |    3 ++-
 sheep/ops.c   |   11 +++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/sheep/group.c b/sheep/group.c
index bac371b..16cbdaf 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -737,7 +737,8 @@ static void finish_join(struct join_message *msg, struct 
sd_node *joined,
        if (!sys->gateway_only && !sd_store && strlen((char *)msg->store)) {
                sd_store = find_store_driver((char *)msg->store);
                if (sd_store) {
-                       sd_store->init(obj_path);
+                       if (sd_store->init(obj_path) != SD_RES_SUCCESS)
+                               panic("failed to initialize store\n");
                        if (set_cluster_store(sd_store->name) != SD_RES_SUCCESS)
                                panic("failed to store into config file\n");
                } else
diff --git a/sheep/ops.c b/sheep/ops.c
index 8aa6b34..15b4d82 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -221,8 +221,15 @@ static int cluster_make_fs(const struct sd_req *req, 
struct sd_rsp *rsp,
        sd_store = driver;
        latest_epoch = get_latest_epoch();
        iocb.epoch = latest_epoch;
-       sd_store->format(&iocb);
-       sd_store->init(obj_path);
+
+       ret = sd_store->format(&iocb);
+       if (ret != SD_RES_SUCCESS)
+               return ret;
+
+       ret = sd_store->init(obj_path);
+       if (ret != SD_RES_SUCCESS)
+               return ret;
+
        sys->nr_copies = hdr->copies;
        sys->flags = hdr->flags;
        if (!sys->nr_copies)
-- 
1.7.2.5

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

Reply via email to