X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Flnet%2Frouter.c;h=d581fa22be745af73707530e6f8f08ee8430a0c5;hp=c40b0317ad098cb016ef16068034da914f88cead;hb=3b760208109b249fd9051d97dbc98664ca4b5769;hpb=05413b3d84f7d1febb89cf4e9c86a7e017d147df diff --git a/lnet/lnet/router.c b/lnet/lnet/router.c index c40b031..d581fa2 100644 --- a/lnet/lnet/router.c +++ b/lnet/lnet/router.c @@ -187,13 +187,13 @@ lnet_move_route(struct lnet_route *route, struct lnet_peer *lp, if (lp) { route = list_first_entry(l, struct lnet_route, - lr_list); + lr_list); route->lr_gateway = lp; lnet_add_route_to_rnet(rnet, route); } else { while (!list_empty(l) && !rt_list) { route = list_first_entry(l, struct lnet_route, - lr_list); + lr_list); list_del(&route->lr_list); LIBCFS_FREE(route, sizeof(*route)); } @@ -582,15 +582,12 @@ struct lnet_remotenet * lnet_find_rnet_locked(__u32 net) { struct lnet_remotenet *rnet; - struct list_head *tmp; struct list_head *rn_list; LASSERT(the_lnet.ln_state == LNET_STATE_RUNNING); rn_list = lnet_net2rnethash(net); - list_for_each(tmp, rn_list) { - rnet = list_entry(tmp, struct lnet_remotenet, lrn_list); - + list_for_each_entry(rnet, rn_list, lrn_list) { if (rnet->lrn_net == net) return rnet; } @@ -979,8 +976,6 @@ lnet_get_route(int idx, __u32 *net, __u32 *hops, lnet_nid_t *gateway, struct lnet_remotenet *rnet; struct list_head *rn_list; struct lnet_route *route; - struct list_head *e1; - struct list_head *e2; int cpt; int i; @@ -988,13 +983,8 @@ lnet_get_route(int idx, __u32 *net, __u32 *hops, lnet_nid_t *gateway, for (i = 0; i < LNET_REMOTE_NETS_HASH_SIZE; i++) { rn_list = &the_lnet.ln_remote_nets_hash[i]; - list_for_each(e1, rn_list) { - rnet = list_entry(e1, struct lnet_remotenet, lrn_list); - - list_for_each(e2, &rnet->lrn_routes) { - route = list_entry(e2, struct lnet_route, - lr_list); - + list_for_each_entry(rnet, rn_list, lrn_list) { + list_for_each_entry(route, &rnet->lrn_routes, lr_list) { if (idx-- == 0) { *net = rnet->lrn_net; *gateway = lnet_nid_to_nid4(&route->lr_nid); @@ -1025,7 +1015,6 @@ static void lnet_wait_known_routerstate(void) { struct lnet_peer *rtr; - struct list_head *entry; int all_known; LASSERT(the_lnet.ln_mt_state == LNET_MT_STATE_RUNNING); @@ -1034,10 +1023,7 @@ lnet_wait_known_routerstate(void) int cpt = lnet_net_lock_current(); all_known = 1; - list_for_each(entry, &the_lnet.ln_routers) { - rtr = list_entry(entry, struct lnet_peer, - lp_rtr_list); - + list_for_each_entry(rtr, &the_lnet.ln_routers, lp_rtr_list) { spin_lock(&rtr->lp_lock); if ((rtr->lp_state & LNET_PEER_RTR_DISCOVERED) == 0) { @@ -1159,7 +1145,6 @@ lnet_check_routers(void) struct lnet_peer_net *first_lpn; struct lnet_peer_net *lpn; struct lnet_peer_ni *lpni; - struct list_head *entry; struct lnet_peer *rtr; bool push = false; bool needs_ping; @@ -1174,10 +1159,7 @@ lnet_check_routers(void) rescan: version = the_lnet.ln_routers_version; - list_for_each(entry, &the_lnet.ln_routers) { - rtr = list_entry(entry, struct lnet_peer, - lp_rtr_list); - + list_for_each_entry(rtr, &the_lnet.ln_routers, lp_rtr_list) { /* If we're currently discovering the peer then don't * issue another discovery */ @@ -1345,7 +1327,7 @@ lnet_rtrpool_free_bufs(struct lnet_rtrbufpool *rbp, int cpt) /* Free buffers on the free list. */ while (!list_empty(&tmp)) { - rb = list_entry(tmp.next, struct lnet_rtrbuf, rb_list); + rb = list_first_entry(&tmp, struct lnet_rtrbuf, rb_list); list_del(&rb->rb_list); lnet_destroy_rtrbuf(rb, npages); } @@ -1419,8 +1401,9 @@ lnet_rtrpool_adjust_bufs(struct lnet_rtrbufpool *rbp, int nbufs, int cpt) return 0; failed: - while (!list_empty(&rb_list)) { - rb = list_entry(rb_list.next, struct lnet_rtrbuf, rb_list); + while ((rb = list_first_entry_or_null(&rb_list, + struct lnet_rtrbuf, + rb_list)) != NULL) { list_del(&rb->rb_list); lnet_destroy_rtrbuf(rb, npages); }