internal.h (188de5dd80b2b7986e75821374efb67081049b6e) internal.h (6b3944e42e2e554aa5a4be681ecd70dccd459114)
1/* internal AFS stuff
2 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

--- 59 unchanged lines hidden (view full) ---

68
69/*
70 * List of server addresses.
71 */
72struct afs_addr_list {
73 struct rcu_head rcu; /* Must be first */
74 refcount_t usage;
75 u32 version; /* Version */
1/* internal AFS stuff
2 *
3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version

--- 59 unchanged lines hidden (view full) ---

68
69/*
70 * List of server addresses.
71 */
72struct afs_addr_list {
73 struct rcu_head rcu; /* Must be first */
74 refcount_t usage;
75 u32 version; /* Version */
76 unsigned char max_addrs;
77 unsigned char nr_addrs;
78 unsigned char index; /* Address currently in use */
79 unsigned char nr_ipv4; /* Number of IPv4 addresses */
76 unsigned short nr_addrs;
77 unsigned short index; /* Address currently in use */
78 unsigned short nr_ipv4; /* Number of IPv4 addresses */
80 unsigned long probed; /* Mask of servers that have been probed */
81 unsigned long yfs; /* Mask of servers that are YFS */
82 struct sockaddr_rxrpc addrs[];
79 unsigned long probed; /* Mask of servers that have been probed */
80 unsigned long yfs; /* Mask of servers that are YFS */
81 struct sockaddr_rxrpc addrs[];
83#define AFS_MAX_ADDRESSES ((unsigned int)(sizeof(unsigned long) * 8))
84};
85
86/*
87 * a record of an in-progress RxRPC call
88 */
89struct afs_call {
90 const struct afs_call_type *type; /* type of call */
91 wait_queue_head_t waitq; /* processes awaiting completion */

--- 147 unchanged lines hidden (view full) ---

239 struct rb_root cells;
240 struct afs_cell __rcu *ws_cell;
241 struct work_struct cells_manager;
242 struct timer_list cells_timer;
243 atomic_t cells_outstanding;
244 seqlock_t cells_lock;
245
246 struct mutex proc_cells_lock;
82};
83
84/*
85 * a record of an in-progress RxRPC call
86 */
87struct afs_call {
88 const struct afs_call_type *type; /* type of call */
89 wait_queue_head_t waitq; /* processes awaiting completion */

--- 147 unchanged lines hidden (view full) ---

237 struct rb_root cells;
238 struct afs_cell __rcu *ws_cell;
239 struct work_struct cells_manager;
240 struct timer_list cells_timer;
241 atomic_t cells_outstanding;
242 seqlock_t cells_lock;
243
244 struct mutex proc_cells_lock;
247 struct list_head proc_cells;
245 struct hlist_head proc_cells;
248
249 /* Known servers. Theoretically each fileserver can only be in one
250 * cell, but in practice, people create aliases and subsets and there's
251 * no easy way to distinguish them.
252 */
253 seqlock_t fs_lock; /* For fs_servers */
254 struct rb_root fs_servers; /* afs_server (by server UUID or address) */
255 struct list_head fs_updates; /* afs_server (by update_at) */

--- 61 unchanged lines hidden (view full) ---

317struct afs_cell {
318 union {
319 struct rcu_head rcu;
320 struct rb_node net_node; /* Node in net->cells */
321 };
322 struct afs_net *net;
323 struct key *anonymous_key; /* anonymous user key for this cell */
324 struct work_struct manager; /* Manager for init/deinit/dns */
246
247 /* Known servers. Theoretically each fileserver can only be in one
248 * cell, but in practice, people create aliases and subsets and there's
249 * no easy way to distinguish them.
250 */
251 seqlock_t fs_lock; /* For fs_servers */
252 struct rb_root fs_servers; /* afs_server (by server UUID or address) */
253 struct list_head fs_updates; /* afs_server (by update_at) */

--- 61 unchanged lines hidden (view full) ---

315struct afs_cell {
316 union {
317 struct rcu_head rcu;
318 struct rb_node net_node; /* Node in net->cells */
319 };
320 struct afs_net *net;
321 struct key *anonymous_key; /* anonymous user key for this cell */
322 struct work_struct manager; /* Manager for init/deinit/dns */
325 struct list_head proc_link; /* /proc cell list link */
323 struct hlist_node proc_link; /* /proc cell list link */
326#ifdef CONFIG_AFS_FSCACHE
327 struct fscache_cookie *cache; /* caching cookie */
328#endif
329 time64_t dns_expiry; /* Time AFSDB/SRV record expires */
330 time64_t last_inactive; /* Time of last drop of usage count */
331 atomic_t usage;
332 unsigned long flags;
333#define AFS_CELL_FL_NOT_READY 0 /* The cell record is not ready for use */

--- 925 unchanged lines hidden ---
324#ifdef CONFIG_AFS_FSCACHE
325 struct fscache_cookie *cache; /* caching cookie */
326#endif
327 time64_t dns_expiry; /* Time AFSDB/SRV record expires */
328 time64_t last_inactive; /* Time of last drop of usage count */
329 atomic_t usage;
330 unsigned long flags;
331#define AFS_CELL_FL_NOT_READY 0 /* The cell record is not ready for use */

--- 925 unchanged lines hidden ---