From: Yunkai Zhang <[email protected]> V2: - cleanup more places as possible as I can.
Note: - this patch based on my two previous patches: 1) sheep: refactor oid_to_vnode[s] and cleanup obj_to_sheep[s] 2) sheep: refactor get_nth_node() and get_vnode_pos() ------------------------------------------------------ >8 The type of request->vnodes is vnode_info, let's rename it to ->vinfo which will be more descriptive. Cleanup other places as possible as I can according this naming rule. Signed-off-by: Yunkai Zhang <[email protected]> --- sheep/farm/trunk.c | 10 +++++----- sheep/gateway.c | 8 ++++---- sheep/ops.c | 2 +- sheep/recovery.c | 32 ++++++++++++++++---------------- sheep/request.c | 12 ++++++------ sheep/sheep_priv.h | 7 +++---- 6 files changed, 35 insertions(+), 36 deletions(-) diff --git a/sheep/farm/trunk.c b/sheep/farm/trunk.c index 6b5971b..cd1fd20 100644 --- a/sheep/farm/trunk.c +++ b/sheep/farm/trunk.c @@ -239,15 +239,15 @@ static unsigned char *omap_tree_insert(uint64_t oid, unsigned char *sha1) static int oid_stale(uint64_t oid) { int i, nr_copies; - struct vnode_info *vnodes; + struct vnode_info *vinfo; struct sd_vnode *v; int ret = 1; struct sd_vnode *obj_vnodes[SD_MAX_COPIES]; - vnodes = get_vnode_info(); - nr_copies = get_nr_copies(vnodes); + vinfo = get_vnode_info(); + nr_copies = get_nr_copies(vinfo); - oid_to_vnodes(vnodes->vnodes, vnodes->nr_vnodes, oid, + oid_to_vnodes(vinfo->vnodes, vinfo->nr_vnodes, oid, nr_copies, obj_vnodes); for (i = 0; i < nr_copies; i++) { v = obj_vnodes[i]; @@ -257,7 +257,7 @@ static int oid_stale(uint64_t oid) } } - put_vnode_info(vnodes); + put_vnode_info(vinfo); return ret; } diff --git a/sheep/gateway.c b/sheep/gateway.c index fe7ef2d..382dc7c 100644 --- a/sheep/gateway.c +++ b/sheep/gateway.c @@ -35,8 +35,8 @@ int gateway_read_obj(struct request *req) if (sys->enable_write_cache && !req->local && !bypass_object_cache(req)) return object_cache_handle_request(req); - nr_copies = get_nr_copies(req->vnodes); - oid_to_vnodes(req->vnodes->vnodes, req->vnodes->nr_vnodes, oid, + nr_copies = get_nr_copies(req->vinfo); + oid_to_vnodes(req->vinfo->vnodes, req->vinfo->nr_vnodes, oid, nr_copies, obj_vnodes); for (i = 0; i < nr_copies; i++) { v = obj_vnodes[i]; @@ -245,8 +245,8 @@ static int gateway_forward_request(struct request *req) write_info_init(&wi); wlen = hdr.data_length; - nr_copies = get_nr_copies(req->vnodes); - oid_to_vnodes(req->vnodes->vnodes, req->vnodes->nr_vnodes, oid, + nr_copies = get_nr_copies(req->vinfo); + oid_to_vnodes(req->vinfo->vnodes, req->vinfo->nr_vnodes, oid, nr_copies, obj_vnodes); for (i = 0; i < nr_copies; i++) { diff --git a/sheep/ops.c b/sheep/ops.c index 861d449..2210173 100644 --- a/sheep/ops.c +++ b/sheep/ops.c @@ -815,7 +815,7 @@ int peer_create_and_write_obj(struct request *req) goto out; } if (hdr->data_length != SD_DATA_OBJ_SIZE) { - ret = read_copy_from_replica(req->vnodes, hdr->epoch, + ret = read_copy_from_replica(req->vinfo, hdr->epoch, hdr->obj.cow_oid, buf); if (ret != SD_RES_SUCCESS) { eprintf("failed to read cow object\n"); diff --git a/sheep/recovery.c b/sheep/recovery.c index 080a4b8..5164aa7 100644 --- a/sheep/recovery.c +++ b/sheep/recovery.c @@ -36,8 +36,8 @@ struct recovery_work { uint64_t *prio_oids; int nr_prio_oids; - struct vnode_info *old_vnodes; - struct vnode_info *cur_vnodes; + struct vnode_info *old_vinfo; + struct vnode_info *cur_vinfo; }; static struct recovery_work *next_rw; @@ -165,7 +165,7 @@ static int do_recover_object(struct recovery_work *rw) uint32_t epoch = rw->epoch, tgt_epoch = rw->epoch - 1; int nr_copies, ret, i; - old = grab_vnode_info(rw->old_vnodes); + old = grab_vnode_info(rw->old_vinfo); again: dprintf("try recover object %"PRIx64" from epoch %"PRIu32"\n", @@ -178,8 +178,8 @@ again: old->nr_vnodes, oid, i); - if (is_invalid_vnode(tgt_vnode, rw->cur_vnodes->nodes, - rw->cur_vnodes->nr_nodes)) + if (is_invalid_vnode(tgt_vnode, rw->cur_vinfo->nodes, + rw->cur_vinfo->nr_nodes)) continue; ret = recover_object_from_replica(oid, tgt_vnode, epoch, tgt_epoch); @@ -320,8 +320,8 @@ bool oid_in_recovery(uint64_t oid) static void free_recovery_work(struct recovery_work *rw) { - put_vnode_info(rw->cur_vnodes); - put_vnode_info(rw->old_vnodes); + put_vnode_info(rw->cur_vinfo); + put_vnode_info(rw->old_vinfo); free(rw->oids); free(rw); } @@ -343,7 +343,7 @@ static inline void finish_recovery(struct recovery_work *rw) sys->recovered_epoch = rw->epoch; if (sd_store->end_recover) - sd_store->end_recover(sys->epoch - 1, rw->old_vnodes); + sd_store->end_recover(sys->epoch - 1, rw->old_vinfo); free_recovery_work(rw); @@ -515,9 +515,9 @@ static void screen_object_list(struct recovery_work *rw, int nr_objs; int i, j; - nr_objs = get_nr_copies(rw->cur_vnodes); + nr_objs = get_nr_copies(rw->cur_vinfo); for (i = 0; i < nr_oids; i++) { - oid_to_vnodes(rw->cur_vnodes->vnodes, rw->cur_vnodes->nr_vnodes, + oid_to_vnodes(rw->cur_vinfo->vnodes, rw->cur_vinfo->nr_vnodes, oids[i], nr_objs, vnodes); for (j = 0; j < nr_objs; j++) { if (!vnode_is_local(vnodes[j])) @@ -536,7 +536,7 @@ static void screen_object_list(struct recovery_work *rw, static int newly_joined(struct sd_node *node, struct recovery_work *rw) { - if (bsearch(node, rw->old_vnodes->nodes, rw->old_vnodes->nr_nodes, + if (bsearch(node, rw->old_vinfo->nodes, rw->old_vinfo->nr_nodes, sizeof(struct sd_node), node_id_cmp)) return 0; return 1; @@ -549,8 +549,8 @@ static void prepare_object_list(struct work *work) work); uint8_t *buf = NULL; size_t buf_size = SD_DATA_OBJ_SIZE; /* FIXME */ - struct sd_node *cur = rw->cur_vnodes->nodes; - int cur_nr = rw->cur_vnodes->nr_nodes; + struct sd_node *cur = rw->cur_vinfo->nodes; + int cur_nr = rw->cur_vinfo->nr_nodes; int start = random() % cur_nr, i, end = cur_nr; dprintf("%u\n", rw->epoch); @@ -592,7 +592,7 @@ static inline bool node_is_gateway_only(void) return sys->this_node.nr_vnodes == 0 ? true : false; } -int start_recovery(struct vnode_info *cur_vnodes, struct vnode_info *old_vnodes) +int start_recovery(struct vnode_info *cur_vinfo, struct vnode_info *old_vinfo) { struct recovery_work *rw; @@ -610,8 +610,8 @@ int start_recovery(struct vnode_info *cur_vnodes, struct vnode_info *old_vnodes) rw->epoch = sys->epoch; rw->count = 0; - rw->cur_vnodes = grab_vnode_info(cur_vnodes); - rw->old_vnodes = grab_vnode_info(old_vnodes); + rw->cur_vinfo = grab_vnode_info(cur_vinfo); + rw->old_vinfo = grab_vnode_info(old_vinfo); rw->work.fn = prepare_object_list; rw->work.done = finish_object_list; diff --git a/sheep/request.c b/sheep/request.c index a673a63..ab7c63a 100644 --- a/sheep/request.c +++ b/sheep/request.c @@ -30,8 +30,8 @@ static int is_access_local(struct request *req, uint64_t oid) int nr_copies; int i; - nr_copies = get_nr_copies(req->vnodes); - oid_to_vnodes(req->vnodes->vnodes, req->vnodes->nr_vnodes, oid, + nr_copies = get_nr_copies(req->vinfo); + oid_to_vnodes(req->vinfo->vnodes, req->vinfo->nr_vnodes, oid, nr_copies, obj_vnodes); for (i = 0; i < nr_copies; i++) { @@ -365,7 +365,7 @@ static void queue_request(struct request *req) * called before we set up current_vnode_info */ if (!is_force_op(req->op)) - req->vnodes = get_vnode_info(); + req->vinfo = get_vnode_info(); if (is_peer_op(req->op)) { queue_peer_request(req); @@ -391,8 +391,8 @@ done: static void requeue_request(struct request *req) { - if (req->vnodes) - put_vnode_info(req->vnodes); + if (req->vinfo) + put_vnode_info(req->vinfo); queue_request(req); } @@ -479,7 +479,7 @@ static void free_request(struct request *req) uatomic_dec(&sys->nr_outstanding_reqs); req->ci->refcnt--; - put_vnode_info(req->vnodes); + put_vnode_info(req->vinfo); free(req->data); free(req); } diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h index 201d322..6f667ee 100644 --- a/sheep/sheep_priv.h +++ b/sheep/sheep_priv.h @@ -57,7 +57,7 @@ struct request { uint64_t local_oid; - struct vnode_info *vnodes; + struct vnode_info *vinfo; struct work work; }; @@ -214,7 +214,7 @@ struct vnode_info *grab_vnode_info(struct vnode_info *vnode_info); struct vnode_info *get_vnode_info(void); void update_vnode_info(struct vnode_info *vnode_info); struct vnode_info *alloc_vnode_info(struct sd_node *nodes, size_t nr_nodes); -void put_vnode_info(struct vnode_info *vnodes); +void put_vnode_info(struct vnode_info *vinfo); struct vnode_info *get_vnode_info_epoch(uint32_t epoch); int get_nr_copies(struct vnode_info *vnode_info); @@ -253,8 +253,7 @@ uint64_t get_cluster_ctime(void); int get_obj_list(const struct sd_list_req *, struct sd_list_rsp *, void *); int objlist_cache_cleanup(uint32_t vid); -int start_recovery(struct vnode_info *cur_vnodes, - struct vnode_info *old_vnodes); +int start_recovery(struct vnode_info *cur_vinfo, struct vnode_info *old_vinfo); void resume_recovery_work(void); bool oid_in_recovery(uint64_t oid); int is_recovery_init(void); -- 1.7.11.2 -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
