[Sheepdog] [PATCH v5 1/7] sheep: add a helper epoch_log_read_nr()
Liu Yuan
namei.unix at gmail.com
Wed Oct 19 12:06:16 CEST 2011
From: Liu Yuan <tailai.ly at taobao.com>
Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
---
sheep/group.c | 6 ++----
sheep/sheep_priv.h | 1 +
sheep/store.c | 9 +++++++++
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/sheep/group.c b/sheep/group.c
index eb64207..8ad54a3 100644
--- a/sheep/group.c
+++ b/sheep/group.c
@@ -452,8 +452,7 @@ static struct sheepdog_node_list_entry *find_entry_epoch(struct sheepdog_node_li
struct sheepdog_node_list_entry nodes[SD_MAX_NODES];
int nr, i;
- nr = epoch_log_read(epoch, (char *)nodes, sizeof(nodes));
- nr /= sizeof(nodes[0]);
+ nr = epoch_log_read_nr(epoch, (char *)nodes, sizeof(nodes));
for (i = 0; i < nr; i++)
if (node_cmp(&nodes[i], entry) == 0)
@@ -591,9 +590,8 @@ static int get_cluster_status(struct sheepdog_node_list_entry *from,
return SD_RES_NEW_NODE_VER;
}
- nr_local_entries = epoch_log_read(epoch, (char *)local_entries,
+ nr_local_entries = epoch_log_read_nr(epoch, (char *)local_entries,
sizeof(local_entries));
- nr_local_entries /= sizeof(local_entries[0]);
if (nr_entries != nr_local_entries) {
eprintf("joining node has invalid epoch, %"PRIu32" %s\n",
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index cccb986..8ff82db 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -216,6 +216,7 @@ int get_global_nr_copies(uint32_t *copies);
int epoch_log_write(uint32_t epoch, char *buf, int len);
int epoch_log_read(uint32_t epoch, char *buf, int len);
+int epoch_log_read_nr(uint32_t epoch, char *buf, int len);
int epoch_log_read_remote(uint32_t epoch, char *buf, int len);
int get_latest_epoch(void);
int remove_epoch(int epoch);
diff --git a/sheep/store.c b/sheep/store.c
index 3da5713..407337d 100644
--- a/sheep/store.c
+++ b/sheep/store.c
@@ -872,6 +872,15 @@ out:
return ret;
}
+int epoch_log_read_nr(uint32_t epoch, char *buf, int len)
+{
+ int nr;
+
+ nr = epoch_log_read(epoch, buf, len);
+ nr /= sizeof(struct sheepdog_node_list_entry);
+ return nr;
+}
+
int epoch_log_read(uint32_t epoch, char *buf, int len)
{
int fd;
--
1.7.6.1
More information about the sheepdog
mailing list