#include <linux/sched.h>
#include <linux/slab.h>
#include "afs_fs.h"
#include "internal.h"
#include "protocol_yfs.h"
static unsigned afs_server_gc_delay = …;
static atomic_t afs_server_debug_id;
static struct afs_server *afs_maybe_use_server(struct afs_server *,
enum afs_server_trace);
static void __afs_put_server(struct afs_net *, struct afs_server *);
struct afs_server *afs_find_server(struct afs_net *net, const struct rxrpc_peer *peer)
{ … }
struct afs_server *afs_find_server_by_uuid(struct afs_net *net, const uuid_t *uuid)
{ … }
static struct afs_server *afs_install_server(struct afs_cell *cell,
struct afs_server *candidate)
{ … }
static struct afs_server *afs_alloc_server(struct afs_cell *cell,
const uuid_t *uuid,
struct afs_addr_list *alist)
{ … }
static struct afs_addr_list *afs_vl_lookup_addrs(struct afs_cell *cell,
struct key *key, const uuid_t *uuid)
{ … }
struct afs_server *afs_lookup_server(struct afs_cell *cell, struct key *key,
const uuid_t *uuid, u32 addr_version)
{ … }
static void afs_set_server_timer(struct afs_net *net, time64_t delay)
{ … }
void afs_servers_timer(struct timer_list *timer)
{ … }
struct afs_server *afs_get_server(struct afs_server *server,
enum afs_server_trace reason)
{ … }
static struct afs_server *afs_maybe_use_server(struct afs_server *server,
enum afs_server_trace reason)
{ … }
struct afs_server *afs_use_server(struct afs_server *server, enum afs_server_trace reason)
{ … }
void afs_put_server(struct afs_net *net, struct afs_server *server,
enum afs_server_trace reason)
{ … }
void afs_unuse_server_notime(struct afs_net *net, struct afs_server *server,
enum afs_server_trace reason)
{ … }
void afs_unuse_server(struct afs_net *net, struct afs_server *server,
enum afs_server_trace reason)
{ … }
static void afs_server_rcu(struct rcu_head *rcu)
{ … }
static void __afs_put_server(struct afs_net *net, struct afs_server *server)
{ … }
static void afs_give_up_callbacks(struct afs_net *net, struct afs_server *server)
{ … }
static void afs_destroy_server(struct afs_net *net, struct afs_server *server)
{ … }
static void afs_gc_servers(struct afs_net *net, struct afs_server *gc_list)
{ … }
void afs_manage_servers(struct work_struct *work)
{ … }
static void afs_queue_server_manager(struct afs_net *net)
{ … }
void afs_purge_servers(struct afs_net *net)
{ … }
static noinline bool afs_update_server_record(struct afs_operation *op,
struct afs_server *server,
struct key *key)
{ … }
bool afs_check_server_record(struct afs_operation *op, struct afs_server *server,
struct key *key)
{ … }