Storage drivers shouldn't care about config file.

Signed-off-by: MORITA Kazutaka <[email protected]>
---
 sheep/ops.c         |    5 ++++-
 sheep/plain_store.c |    5 +----
 sheep/sheep_priv.h  |    4 ++--
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/sheep/ops.c b/sheep/ops.c
index 6e1936a..74504a8 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -221,6 +221,7 @@ static int cluster_make_fs(const struct sd_req *req, struct 
sd_rsp *rsp,
        uint64_t created_time;
        struct siocb iocb = { 0 };
        struct store_driver *driver;
+       char *store_name = data;
 
        driver = find_store_driver(data);
        if (!driver)
@@ -230,9 +231,11 @@ static int cluster_make_fs(const struct sd_req *req, 
struct sd_rsp *rsp,
        latest_epoch = get_latest_epoch();
        iocb.epoch = latest_epoch;
 
-       ret = sd_store->format(data);
+       ret = sd_store->format();
        if (ret != SD_RES_SUCCESS)
                return ret;
+       if (set_cluster_store(store_name) < 0)
+               return SD_RES_EIO;
 
        ret = sd_store->init(obj_path);
        if (ret != SD_RES_SUCCESS)
diff --git a/sheep/plain_store.c b/sheep/plain_store.c
index 30566ab..cd1c41b 100644
--- a/sheep/plain_store.c
+++ b/sheep/plain_store.c
@@ -382,7 +382,7 @@ int default_end_recover(uint32_t old_epoch, struct 
vnode_info *old_vnode_info)
        return for_each_object_in_wd(check_stale_objects, &old_epoch);
 }
 
-int default_format(char *name)
+int default_format(void)
 {
        unsigned ret;
 
@@ -397,9 +397,6 @@ int default_format(char *name)
                return SD_RES_EIO;
        }
 
-       if (set_cluster_store(name) < 0)
-               return SD_RES_EIO;
-
        return SD_RES_SUCCESS;
 }
 
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index c2286ab..5969c26 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -145,7 +145,7 @@ struct store_driver {
        int (*exist)(uint64_t oid);
        int (*write)(uint64_t oid, struct siocb *, int create);
        int (*read)(uint64_t oid, struct siocb *);
-       int (*format)(char *name);
+       int (*format)(void);
        int (*remove_object)(uint64_t oid);
        /* Operations in recovery */
        int (*link)(uint64_t oid, struct siocb *, uint32_t tgt_epoch);
@@ -168,7 +168,7 @@ int default_link(uint64_t oid, struct siocb *iocb, uint32_t 
tgt_epoch);
 int default_atomic_put(uint64_t oid, struct siocb *iocb);
 int default_end_recover(uint32_t old_epoch, struct vnode_info *old_vnode_info);
 int default_cleanup(void);
-int default_format(char *name);
+int default_format(void);
 int default_remove_object(uint64_t oid);
 int default_purge_obj(void);
 int for_each_object_in_wd(int (*func)(uint64_t oid, void *arg), void *arg);
-- 
1.7.2.5

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

Reply via email to