Signed-off-by: FUJITA Tomonori <[email protected]>
---
 collie/collie.h |    3 +--
 collie/group.c  |   36 ++++++++++++++++++------------------
 collie/store.c  |    4 ++--
 collie/vdi.c    |   10 +++++-----
 4 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/collie/collie.h b/collie/collie.h
index b183315..1d066ad 100644
--- a/collie/collie.h
+++ b/collie/collie.h
@@ -94,8 +94,7 @@ int lookup_vdi(char *data, int data_len, uint64_t *oid, 
uint32_t snapid);
 
 int read_vdis(char *data, int len, unsigned int *rsp_len);
 
-int build_node_list(struct list_head *node_list,
-                   struct sheepdog_node_list_entry *entries);
+int get_ordered_sd_node_list(struct sheepdog_node_list_entry *entries);
 
 int create_cluster(int port);
 
diff --git a/collie/group.c b/collie/group.c
index e4f78da..c71ec0a 100644
--- a/collie/group.c
+++ b/collie/group.c
@@ -144,7 +144,24 @@ static int get_node_idx(struct sheepdog_node_list_entry 
*ent,
        return ent - entries;
 }
 
-static int get_ordered_sd_node_list(struct sheepdog_node_list_entry *entries)
+static int build_node_list(struct list_head *node_list,
+                          struct sheepdog_node_list_entry *entries)
+{
+       struct node *node;
+       int nr = 0;
+
+       list_for_each_entry(node, node_list, list) {
+               if (entries)
+                       memcpy(entries + nr, &node->ent, sizeof(*entries));
+               nr++;
+       }
+       if (entries)
+               qsort(entries, nr, sizeof(*entries), node_cmp);
+
+       return nr;
+}
+
+int get_ordered_sd_node_list(struct sheepdog_node_list_entry *entries)
 {
        return build_node_list(&sys->sd_node_list, entries);
 }
@@ -1040,23 +1057,6 @@ err:
                free(w->joined_list);
 }
 
-int build_node_list(struct list_head *node_list,
-                   struct sheepdog_node_list_entry *entries)
-{
-       struct node *node;
-       int nr = 0;
-
-       list_for_each_entry(node, node_list, list) {
-               if (entries)
-                       memcpy(entries + nr, &node->ent, sizeof(*entries));
-               nr++;
-       }
-       if (entries)
-               qsort(entries, nr, sizeof(*entries), node_cmp);
-
-       return nr;
-}
-
 static void set_addr(unsigned int nodeid, int port)
 {
        int ret, nr;
diff --git a/collie/store.c b/collie/store.c
index 7bb0f48..339dc54 100644
--- a/collie/store.c
+++ b/collie/store.c
@@ -220,7 +220,7 @@ static int read_from_one(uint64_t oid,
 
        e = zalloc(SD_MAX_NODES * sizeof(struct sheepdog_node_list_entry));
 again:
-       nr = build_node_list(&sys->sd_node_list, e);
+       nr = get_ordered_sd_node_list(e);
 
        for (i = 0; i < nr; i++) {
                n = obj_to_sheep(e, nr, oid, i);
@@ -314,7 +314,7 @@ static int forward_obj_req(struct request *req, char *buf)
 
        e = zalloc(SD_MAX_NODES * sizeof(struct sheepdog_node_list_entry));
 again:
-       nr = build_node_list(&sys->sd_node_list, e);
+       nr = get_ordered_sd_node_list(e);
 
        copies = hdr->copies;
 
diff --git a/collie/vdi.c b/collie/vdi.c
index ce37c8e..7a87760 100644
--- a/collie/vdi.c
+++ b/collie/vdi.c
@@ -29,7 +29,7 @@ static int create_vdi_obj(char *name, uint64_t new_oid, 
uint64_t size,
        int ret, nr_nodes;
        unsigned long block_size = SD_DATA_OBJ_SIZE;
 
-       nr_nodes = build_node_list(&sys->sd_node_list, entries);
+       nr_nodes = get_ordered_sd_node_list(entries);
 
        if (base_oid) {
                ret = read_object(entries, nr_nodes, sys->epoch,
@@ -127,7 +127,7 @@ static int find_first_vdi(unsigned long start, unsigned 
long end,
        int nr_nodes, nr_reqs;
        int ret;
 
-       nr_nodes = build_node_list(&sys->sd_node_list, entries);
+       nr_nodes = get_ordered_sd_node_list(entries);
 
        nr_reqs = sys->nr_sobjs;
        if (nr_reqs > nr_nodes)
@@ -291,7 +291,7 @@ int del_vdi(char *data, int data_len, uint32_t snapid)
        if (ret != SD_RES_SUCCESS)
                return ret;
 
-       nr_nodes = build_node_list(&sys->sd_node_list, entries);
+       nr_nodes = get_ordered_sd_node_list(entries);
        nr_reqs = sys->nr_sobjs;
        if (nr_reqs > nr_nodes)
                nr_reqs = nr_nodes;
@@ -354,7 +354,7 @@ static void delete_one(struct work *work, int idx)
 
        eprintf("%d %d, %16lx\n", dw->done, dw->count, vdi_oid);
 
-       nr_nodes = build_node_list(&sys->sd_node_list, entries);
+       nr_nodes = get_ordered_sd_node_list(entries);
 
        ret = read_object(entries, nr_nodes, sys->epoch,
                          vdi_oid, (void *)&inode, sizeof(inode), 0, 
sys->nr_sobjs);
@@ -471,7 +471,7 @@ static void __start_deletion(struct work *work, int idx)
        int nr_nodes, ret;
        uint64_t root_oid;
 
-       nr_nodes = build_node_list(&sys->sd_node_list, entries);
+       nr_nodes = get_ordered_sd_node_list(entries);
 
        root_oid = get_vdi_root(entries, nr_nodes, dw->oid);
        if (!root_oid)
-- 
1.7.0

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

Reply via email to