Lines Matching refs:vllist
53 struct afs_vlserver_list *vllist;
55 vllist = kzalloc(struct_size(vllist, servers, nr_servers), GFP_KERNEL);
56 if (vllist) {
57 refcount_set(&vllist->ref, 1);
58 rwlock_init(&vllist->lock);
61 return vllist;
64 void afs_put_vlserverlist(struct afs_net *net, struct afs_vlserver_list *vllist)
66 if (vllist) {
67 if (refcount_dec_and_test(&vllist->ref)) {
70 for (i = 0; i < vllist->nr_servers; i++) {
71 afs_put_vlserver(net, vllist->servers[i].server);
73 kfree_rcu(vllist, rcu);
165 struct afs_vlserver_list *vllist, *previous;
185 vllist = afs_alloc_vlserver_list(nr_servers);
186 if (!vllist)
189 vllist->source = (hdr->source < NR__dns_record_source) ?
191 vllist->status = (hdr->status < NR__dns_lookup_status) ?
265 if (vllist->nr_servers >= nr_servers) {
266 _debug("skip %u >= %u", vllist->nr_servers, nr_servers);
295 for (j = 0; j < vllist->nr_servers; j++) {
296 if (bs.priority < vllist->servers[j].priority)
298 if (bs.priority == vllist->servers[j].priority &&
299 bs.weight > vllist->servers[j].weight)
303 if (j < vllist->nr_servers) {
304 memmove(vllist->servers + j + 1,
305 vllist->servers + j,
306 (vllist->nr_servers - j) * sizeof(struct afs_vlserver_entry));
311 vllist->servers[j].priority = bs.priority;
312 vllist->servers[j].weight = bs.weight;
313 vllist->servers[j].server = server;
314 vllist->nr_servers++;
323 _leave(" = ok [%u]", vllist->nr_servers);
324 return vllist;
329 afs_put_vlserverlist(cell->net, vllist);