[sheepdog] [PATCH 4/6] farm: use default_format for formatting
Liu Yuan
namei.unix at gmail.com
Fri Aug 24 14:10:15 CEST 2012
From: Liu Yuan <tailai.ly at taobao.com>
- refine the interface to get name string directly
Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
---
sheep/farm/farm.c | 26 +-------------------------
sheep/ops.c | 2 +-
sheep/plain_store.c | 3 +--
sheep/sheep_priv.h | 4 ++--
4 files changed, 5 insertions(+), 30 deletions(-)
diff --git a/sheep/farm/farm.c b/sheep/farm/farm.c
index a680a10..69198a1 100644
--- a/sheep/farm/farm.c
+++ b/sheep/farm/farm.c
@@ -318,30 +318,6 @@ out:
return ret;
}
-static int farm_format(struct siocb *iocb)
-{
- char path[PATH_MAX];
- unsigned ret;
- const char name[] = "farm";
-
- dprintf("try get a clean store\n");
- snprintf(path, sizeof(path), "%s", obj_path);
- ret = rmdir_r(path);
- if (ret && ret != -ENOENT) {
- eprintf("failed to remove %s: %s\n", path, strerror(-ret));
- return SD_RES_EIO;
- }
- if (mkdir(path, def_dmode) < 0) {
- eprintf("%m\n");
- return SD_RES_EIO;
- }
-
- if (set_cluster_store(name) < 0)
- return SD_RES_EIO;
-
- return SD_RES_SUCCESS;
-}
-
struct store_driver farm = {
.name = "farm",
.init = farm_init,
@@ -355,7 +331,7 @@ struct store_driver farm = {
.cleanup = default_cleanup,
.restore = farm_restore,
.get_snap_file = farm_get_snap_file,
- .format = farm_format,
+ .format = default_format,
.purge_obj = default_purge_obj,
.remove_object = default_remove_object,
};
diff --git a/sheep/ops.c b/sheep/ops.c
index f30b8ba..9f2e04f 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -227,7 +227,7 @@ 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(&iocb);
+ ret = sd_store->format(data);
if (ret != SD_RES_SUCCESS)
return ret;
diff --git a/sheep/plain_store.c b/sheep/plain_store.c
index 0f946c9..324a139 100644
--- a/sheep/plain_store.c
+++ b/sheep/plain_store.c
@@ -356,10 +356,9 @@ int default_end_recover(uint32_t old_epoch, struct vnode_info *old_vnode_info)
return for_each_objects(move_object_to_stale_dir);
}
-int default_format(struct siocb *iocb)
+int default_format(char *name)
{
unsigned ret;
- const char name[] = "plain";
dprintf("try get a clean store\n");
ret = rmdir_r(obj_path);
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index bbc1ee5..7a54268 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -144,7 +144,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)(struct siocb *);
+ int (*format)(char *name);
int (*remove_object)(uint64_t oid);
/* Operations in recovery */
int (*link)(uint64_t oid, struct siocb *, uint32_t tgt_epoch);
@@ -167,7 +167,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(struct siocb *iocb);
+int default_format(char *name);
int default_remove_object(uint64_t oid);
int default_purge_obj(void);
--
1.7.10.2
More information about the sheepdog
mailing list