summaryrefslogtreecommitdiffstats
path: root/fs/afs/internal.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2017-11-02 15:27:45 +0000
committerDavid Howells <dhowells@redhat.com>2017-11-13 15:38:16 +0000
commit59fa1c4a9f528c2a1556f4b2cd4e055b560c1c0a (patch)
treeca7a896cd83bccf789a1d29791e22d144768ac5e /fs/afs/internal.h
parente3b2ffe0f0e1471854dc53bb69ff452e65cc88f2 (diff)
downloadlinux-59fa1c4a9f528c2a1556f4b2cd4e055b560c1c0a.tar.gz
linux-59fa1c4a9f528c2a1556f4b2cd4e055b560c1c0a.tar.bz2
linux-59fa1c4a9f528c2a1556f4b2cd4e055b560c1c0a.zip
afs: Fix server reaping
Fix server reaping and make sure it's all done before we start trying to purge cells, given that servers currently pin cells. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/internal.h')
-rw-r--r--fs/afs/internal.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 53bd11d73469..bc9ded443b11 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -238,7 +238,9 @@ struct afs_net {
rwlock_t servers_lock;
struct list_head server_graveyard; /* Inactive server LRU list */
spinlock_t server_graveyard_lock;
- struct delayed_work server_reaper;
+ struct timer_list server_timer;
+ struct work_struct server_reaper;
+ atomic_t servers_outstanding;
/* Misc */
struct proc_dir_entry *proc_afs; /* /proc/net/afs directory */
@@ -700,6 +702,7 @@ do { \
atomic_inc(&(S)->usage); \
} while(0)
+extern void afs_server_timer(struct timer_list *);
extern struct afs_server *afs_lookup_server(struct afs_cell *,
const struct in_addr *);
extern struct afs_server *afs_find_server(struct afs_net *,