Lines Matching refs:slist
16 void afs_put_serverlist(struct afs_net *net, struct afs_server_list *slist) in afs_put_serverlist() argument
20 if (slist && refcount_dec_and_test(&slist->usage)) { in afs_put_serverlist()
21 for (i = 0; i < slist->nr_servers; i++) { in afs_put_serverlist()
22 afs_put_cb_interest(net, slist->servers[i].cb_interest); in afs_put_serverlist()
23 afs_put_server(net, slist->servers[i].server); in afs_put_serverlist()
25 kfree(slist); in afs_put_serverlist()
37 struct afs_server_list *slist; in afs_alloc_server_list() local
45 slist = kzalloc(sizeof(struct afs_server_list) + in afs_alloc_server_list()
48 if (!slist) in afs_alloc_server_list()
51 refcount_set(&slist->usage, 1); in afs_alloc_server_list()
52 rwlock_init(&slist->lock); in afs_alloc_server_list()
69 for (j = 0; j < slist->nr_servers; j++) in afs_alloc_server_list()
70 if (memcmp(&slist->servers[j].server->uuid, in afs_alloc_server_list()
74 if (j < slist->nr_servers) { in afs_alloc_server_list()
75 if (slist->servers[j].server == server) { in afs_alloc_server_list()
80 memmove(slist->servers + j + 1, in afs_alloc_server_list()
81 slist->servers + j, in afs_alloc_server_list()
82 (slist->nr_servers - j) * sizeof(struct afs_server_entry)); in afs_alloc_server_list()
85 slist->servers[j].server = server; in afs_alloc_server_list()
86 slist->nr_servers++; in afs_alloc_server_list()
89 if (slist->nr_servers == 0) { in afs_alloc_server_list()
94 return slist; in afs_alloc_server_list()
97 afs_put_serverlist(cell->net, slist); in afs_alloc_server_list()