diff options
-rw-r--r-- | fs/lockd/host.c | 27 | ||||
-rw-r--r-- | fs/lockd/svcsubs.c | 10 | ||||
-rw-r--r-- | include/linux/lockd/lockd.h | 4 |
3 files changed, 2 insertions, 39 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index 3b55fe5e94a2..1bf384307d15 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -192,33 +192,6 @@ nlm_destroy_host(struct nlm_host *host) | |||
192 | kfree(host); | 192 | kfree(host); |
193 | } | 193 | } |
194 | 194 | ||
195 | struct nlm_host * | ||
196 | nlm_find_client(void) | ||
197 | { | ||
198 | struct hlist_head *chain; | ||
199 | struct hlist_node *pos; | ||
200 | |||
201 | /* find a nlm_host for a client for which h_killed == 0. | ||
202 | * and return it | ||
203 | */ | ||
204 | mutex_lock(&nlm_host_mutex); | ||
205 | for (chain = nlm_hosts; chain < nlm_hosts + NLM_HOST_NRHASH; ++chain) { | ||
206 | struct nlm_host *host; | ||
207 | |||
208 | hlist_for_each_entry(host, pos, chain, h_hash) { | ||
209 | if (host->h_server && | ||
210 | host->h_killed == 0) { | ||
211 | nlm_get_host(host); | ||
212 | mutex_unlock(&nlm_host_mutex); | ||
213 | return host; | ||
214 | } | ||
215 | } | ||
216 | } | ||
217 | mutex_unlock(&nlm_host_mutex); | ||
218 | return NULL; | ||
219 | } | ||
220 | |||
221 | |||
222 | /* | 195 | /* |
223 | * Create the NLM RPC client for an NLM peer | 196 | * Create the NLM RPC client for an NLM peer |
224 | */ | 197 | */ |
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c index bb13a48210f5..a1c7c0848415 100644 --- a/fs/lockd/svcsubs.c +++ b/fs/lockd/svcsubs.c | |||
@@ -354,13 +354,11 @@ nlmsvc_free_host_resources(struct nlm_host *host) | |||
354 | } | 354 | } |
355 | 355 | ||
356 | /* | 356 | /* |
357 | * delete all hosts structs for clients | 357 | * Remove all locks held for clients |
358 | */ | 358 | */ |
359 | void | 359 | void |
360 | nlmsvc_invalidate_all(void) | 360 | nlmsvc_invalidate_all(void) |
361 | { | 361 | { |
362 | struct nlm_host *host; | ||
363 | |||
364 | /* Release all locks held by NFS clients. | 362 | /* Release all locks held by NFS clients. |
365 | * Previously, the code would call | 363 | * Previously, the code would call |
366 | * nlmsvc_free_host_resources for each client in | 364 | * nlmsvc_free_host_resources for each client in |
@@ -368,10 +366,4 @@ nlmsvc_invalidate_all(void) | |||
368 | * Now we just do it once in nlm_traverse_files. | 366 | * Now we just do it once in nlm_traverse_files. |
369 | */ | 367 | */ |
370 | nlm_traverse_files(NULL, nlmsvc_is_client); | 368 | nlm_traverse_files(NULL, nlmsvc_is_client); |
371 | |||
372 | while ((host = nlm_find_client()) != NULL) { | ||
373 | host->h_expires = 0; | ||
374 | host->h_killed = 1; | ||
375 | nlm_release_host(host); | ||
376 | } | ||
377 | } | 369 | } |
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index 8c1145669d06..1fcf936d75b9 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
@@ -45,8 +45,7 @@ struct nlm_host { | |||
45 | unsigned short h_proto; /* transport proto */ | 45 | unsigned short h_proto; /* transport proto */ |
46 | unsigned short h_reclaiming : 1, | 46 | unsigned short h_reclaiming : 1, |
47 | h_server : 1, /* server side, not client side */ | 47 | h_server : 1, /* server side, not client side */ |
48 | h_inuse : 1, | 48 | h_inuse : 1; |
49 | h_killed : 1; | ||
50 | wait_queue_head_t h_gracewait; /* wait while reclaiming */ | 49 | wait_queue_head_t h_gracewait; /* wait while reclaiming */ |
51 | struct rw_semaphore h_rwsem; /* Reboot recovery lock */ | 50 | struct rw_semaphore h_rwsem; /* Reboot recovery lock */ |
52 | u32 h_state; /* pseudo-state counter */ | 51 | u32 h_state; /* pseudo-state counter */ |
@@ -169,7 +168,6 @@ void nlm_rebind_host(struct nlm_host *); | |||
169 | struct nlm_host * nlm_get_host(struct nlm_host *); | 168 | struct nlm_host * nlm_get_host(struct nlm_host *); |
170 | void nlm_release_host(struct nlm_host *); | 169 | void nlm_release_host(struct nlm_host *); |
171 | void nlm_shutdown_hosts(void); | 170 | void nlm_shutdown_hosts(void); |
172 | extern struct nlm_host *nlm_find_client(void); | ||
173 | extern void nlm_host_rebooted(const struct sockaddr_in *, const char *, int, u32); | 171 | extern void nlm_host_rebooted(const struct sockaddr_in *, const char *, int, u32); |
174 | struct nsm_handle *nsm_find(const struct sockaddr_in *, const char *, int); | 172 | struct nsm_handle *nsm_find(const struct sockaddr_in *, const char *, int); |
175 | void nsm_release(struct nsm_handle *); | 173 | void nsm_release(struct nsm_handle *); |