| 912 | } |
| 913 | |
| 914 | void free_info(cluster_info_t *cl_list) |
| 915 | { |
| 916 | cluster_info_t *tmp_cl; |
| 917 | cluster_bridge_t *br, *br_next; |
| 918 | node_info_t *info, *tmp_info; |
| 919 | |
| 920 | while (cl_list != NULL) { |
| 921 | tmp_cl = cl_list; |
| 922 | cl_list = cl_list->next; |
| 923 | |
| 924 | info = tmp_cl->node_list; |
| 925 | while (info != NULL) { |
| 926 | free_node_info(info); |
| 927 | |
| 928 | tmp_info = info; |
| 929 | info = info->next; |
| 930 | shm_free(tmp_info); |
| 931 | } |
| 932 | |
| 933 | shm_free_all(tmp_cl->capabilities); |
| 934 | |
| 935 | for (br = tmp_cl->bridges; br; br = br_next) { |
| 936 | br_next = br->next; |
| 937 | shm_free_all(br->dsts); |
| 938 | shm_free(br); |
| 939 | } |
| 940 | |
| 941 | if (tmp_cl->lock) { |
| 942 | lock_destroy(tmp_cl->lock); |
| 943 | lock_dealloc(tmp_cl->lock); |
| 944 | } |
| 945 | |
| 946 | shm_free(tmp_cl); |
| 947 | } |
| 948 | } |
| 949 | |
| 950 | void remove_node_list(cluster_info_t *cl, node_info_t *node) |
| 951 | { |
no test coverage detected