Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> --- 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 |